diff --git a/src/automation/HISTORY.rst b/src/automation/HISTORY.rst index 159f0fea45c..ca5d3c4c54e 100644 --- a/src/automation/HISTORY.rst +++ b/src/automation/HISTORY.rst @@ -2,6 +2,15 @@ Release History =============== +1.0.0b1 +++++++ +* `az automation account list-keys`: Add new command to retrieve the automation keys for an account. +* `az automation account show-linked-workspace`: Add new command to get the linked workspace. +* `az automation configuration`: Add new command group to support Dsc Configuration management. +* `az automation runtime-environment`: Add new command group to support managing runtime environment. +* `az automation runtime-environment package`: Add new command group to support managing runtime environment packages. +* `az automation source-control sync-job stream show/list`: Add new command to retrieve sync job stream. + 0.2.2 ++++++ * Updated create software update configuration cmdlet to address the bug to allow multiple values for classifications. diff --git a/src/automation/azext_automation/aaz/latest/__init__.py b/src/automation/azext_automation/aaz/latest/__init__.py index 5757aea3175..f6acc11aa4e 100644 --- a/src/automation/azext_automation/aaz/latest/__init__.py +++ b/src/automation/azext_automation/aaz/latest/__init__.py @@ -4,3 +4,7 @@ # # Code generated by aaz-dev-tools # -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + diff --git a/src/automation/azext_automation/aaz/latest/automation/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/__cmd_group.py index 336762af7d2..552b65568ae 100644 --- a/src/automation/azext_automation/aaz/latest/automation/__cmd_group.py +++ b/src/automation/azext_automation/aaz/latest/automation/__cmd_group.py @@ -15,7 +15,7 @@ "automation", ) class __CMDGroup(AAZCommandGroup): - """Manage Automation Account + """Manage Automation Account. """ pass diff --git a/src/automation/azext_automation/aaz/latest/automation/account/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/account/__cmd_group.py new file mode 100644 index 00000000000..400211287e9 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/account/__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 account", +) +class __CMDGroup(AAZCommandGroup): + """Automation Account. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/account/__init__.py b/src/automation/azext_automation/aaz/latest/automation/account/__init__.py new file mode 100644 index 00000000000..8b3344df3ec --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/account/__init__.py @@ -0,0 +1,13 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._list_keys import * +from ._show_linked_workspace import * diff --git a/src/automation/azext_automation/aaz/latest/automation/account/_list_keys.py b/src/automation/azext_automation/aaz/latest/automation/account/_list_keys.py new file mode 100644 index 00000000000..6444aecb475 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/account/_list_keys.py @@ -0,0 +1,182 @@ +# -------------------------------------------------------------------------------------------- +# 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 account list-keys", +) +class ListKeys(AAZCommand): + """Retrieve the automation keys for an account. + + :example: Retrieve the automation keys + az automation account list-keys --resource-group myResouceGroup --name myAutomationAccount + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/listkeys", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["-n", "--name", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.KeysListByAutomationAccount(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class KeysListByAutomationAccount(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}/listKeys", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.keys = AAZListType() + + keys = cls._schema_on_200.keys + keys.Element = AAZObjectType() + + _element = cls._schema_on_200.keys.Element + _element.key_name = AAZStrType( + serialized_name="KeyName", + flags={"read_only": True}, + ) + _element.permissions = AAZStrType( + serialized_name="Permissions", + flags={"read_only": True}, + ) + _element.value = AAZStrType( + serialized_name="Value", + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +class _ListKeysHelper: + """Helper class for ListKeys""" + + +__all__ = ["ListKeys"] diff --git a/src/automation/azext_automation/aaz/latest/automation/account/_show_linked_workspace.py b/src/automation/azext_automation/aaz/latest/automation/account/_show_linked_workspace.py new file mode 100644 index 00000000000..e141f303c7d --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/account/_show_linked_workspace.py @@ -0,0 +1,167 @@ +# -------------------------------------------------------------------------------------------- +# 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 account show-linked-workspace", +) +class ShowLinkedWorkspace(AAZCommand): + """Get the linked workspace for the account id. + + :example: Get the linked workspace id + az automation account show-linked-workspace --resource-group myResourceGroup --name myAutomationAccount + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/linkedworkspace", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["-n", "--name", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.LinkedWorkspaceGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class LinkedWorkspaceGet(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}/linkedWorkspace", + **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( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +class _ShowLinkedWorkspaceHelper: + """Helper class for ShowLinkedWorkspace""" + + +__all__ = ["ShowLinkedWorkspace"] diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/configuration/__cmd_group.py new file mode 100644 index 00000000000..f089d79ba93 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/__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 configuration", +) +class __CMDGroup(AAZCommandGroup): + """Manage Dsc Configuration. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/__init__.py b/src/automation/azext_automation/aaz/latest/automation/configuration/__init__.py new file mode 100644 index 00000000000..7aca2270d71 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/__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 ._show import * +from ._show_content import * +from ._update import * diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/_create.py b/src/automation/azext_automation/aaz/latest/automation/configuration/_create.py new file mode 100644 index 00000000000..ee79cafa2f3 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/_create.py @@ -0,0 +1,392 @@ +# -------------------------------------------------------------------------------------------- +# 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 configuration create", +) +class Create(AAZCommand): + """Create the configuration identified by configuration name. + + :example: Create DSC Configuration that setups a server + az automation configuration create -g rg --automation-account-name myAutomationAccount -n SetupServer --location westus2 --source-type embeddedContent --source "Configuration SetupServer {\r\n Node localhost {\r\n WindowsFeature IIS {\r\n Name = "Web-Server";\r\n Ensure = "Present"\r\n }\r\n }\r\n}" + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/configurations/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.configuration_name = AAZStrArg( + options=["-n", "--name", "--configuration-name"], + help="The create or update parameters for configuration.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema + _args_schema.location = AAZStrArg( + options=["--location"], + arg_group="Parameters", + help="Gets or sets the location of the resource.", + ) + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="Parameters", + help="Gets or sets the tags attached to the resource.", + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg() + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.description = AAZStrArg( + options=["--description"], + arg_group="Properties", + help="Gets or sets the description of the configuration.", + ) + _args_schema.log_progress = AAZBoolArg( + options=["--log-progress"], + arg_group="Properties", + help="Gets or sets progress log option.", + ) + _args_schema.log_verbose = AAZBoolArg( + options=["--log-verbose"], + arg_group="Properties", + help="Gets or sets verbose log option.", + ) + _args_schema.parameters = AAZDictArg( + options=["--parameters"], + arg_group="Properties", + help="Gets or sets the configuration parameters.", + ) + + parameters = cls._args_schema.parameters + parameters.Element = AAZObjectArg() + + _element = cls._args_schema.parameters.Element + _element.default_value = AAZStrArg( + options=["default-value"], + help="Gets or sets the default value of parameter.", + ) + _element.is_mandatory = AAZBoolArg( + options=["is-mandatory"], + help="Gets or sets a Boolean value to indicate whether the parameter is mandatory or not.", + ) + _element.position = AAZIntArg( + options=["position"], + help="Get or sets the position of the parameter.", + ) + _element.type = AAZStrArg( + options=["type"], + help="Gets or sets the type of the parameter.", + ) + + # define Arg Group "Source" + + _args_schema = cls._args_schema + _args_schema.source_hash = AAZObjectArg( + options=["--source-hash"], + arg_group="Source", + help="Gets or sets the hash.", + ) + _args_schema.source_type = AAZStrArg( + options=["--source-type"], + arg_group="Source", + help="Gets or sets the content source type.", + enum={"embeddedContent": "embeddedContent", "uri": "uri"}, + ) + _args_schema.source = AAZStrArg( + options=["--source"], + arg_group="Source", + help="Gets or sets the value of the content. This is based on the content source type.", + ) + _args_schema.source_version = AAZStrArg( + options=["--source-version"], + arg_group="Source", + help="Gets or sets the version of the content.", + ) + + source_hash = cls._args_schema.source_hash + source_hash.algorithm = AAZStrArg( + options=["algorithm"], + help="Gets or sets the content hash algorithm used to hash the content.", + required=True, + ) + source_hash.value = AAZStrArg( + options=["value"], + help="Gets or sets expected hash value of the content.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.DscConfigurationCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class DscConfigurationCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/configurations/{configurationName}", + **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( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"required": True, "client_flatten": True}} + ) + _builder.set_prop("location", AAZStrType, ".location") + _builder.set_prop("name", AAZStrType, ".configuration_name") + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + _builder.set_prop("tags", AAZDictType, ".tags") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("description", AAZStrType, ".description") + properties.set_prop("logProgress", AAZBoolType, ".log_progress") + properties.set_prop("logVerbose", AAZBoolType, ".log_verbose") + properties.set_prop("parameters", AAZDictType, ".parameters") + properties.set_prop("source", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) + + parameters = _builder.get(".properties.parameters") + if parameters is not None: + parameters.set_elements(AAZObjectType, ".") + + _elements = _builder.get(".properties.parameters{}") + if _elements is not None: + _elements.set_prop("defaultValue", AAZStrType, ".default_value") + _elements.set_prop("isMandatory", AAZBoolType, ".is_mandatory") + _elements.set_prop("position", AAZIntType, ".position") + _elements.set_prop("type", AAZStrType, ".type") + + source = _builder.get(".properties.source") + if source is not None: + source.set_prop("hash", AAZObjectType, ".source_hash") + source.set_prop("type", AAZStrType, ".source_type") + source.set_prop("value", AAZStrType, ".source") + source.set_prop("version", AAZStrType, ".source_version") + + hash = _builder.get(".properties.source.hash") + if hash is not None: + hash.set_prop("algorithm", AAZStrType, ".algorithm", typ_kwargs={"flags": {"required": True}}) + hash.set_prop("value", AAZStrType, ".value", typ_kwargs={"flags": {"required": True}}) + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.etag = AAZStrType() + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.location = AAZStrType() + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200_201.tags = AAZDictType() + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.job_count = AAZIntType( + serialized_name="jobCount", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.log_verbose = AAZBoolType( + serialized_name="logVerbose", + ) + properties.node_configuration_count = AAZIntType( + serialized_name="nodeConfigurationCount", + ) + properties.parameters = AAZDictType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source = AAZObjectType() + properties.state = AAZStrType() + + parameters = cls._schema_on_200_201.properties.parameters + parameters.Element = AAZObjectType() + + _element = cls._schema_on_200_201.properties.parameters.Element + _element.default_value = AAZStrType( + serialized_name="defaultValue", + ) + _element.is_mandatory = AAZBoolType( + serialized_name="isMandatory", + ) + _element.position = AAZIntType() + _element.type = AAZStrType() + + source = cls._schema_on_200_201.properties.source + source.hash = AAZObjectType() + source.type = AAZStrType() + source.value = AAZStrType() + source.version = AAZStrType() + + hash = cls._schema_on_200_201.properties.source.hash + hash.algorithm = AAZStrType( + flags={"required": True}, + ) + hash.value = AAZStrType( + flags={"required": True}, + ) + + tags = cls._schema_on_200_201.tags + tags.Element = AAZStrType() + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/_delete.py b/src/automation/azext_automation/aaz/latest/automation/configuration/_delete.py new file mode 100644 index 00000000000..f455e9ed0fa --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/_delete.py @@ -0,0 +1,149 @@ +# -------------------------------------------------------------------------------------------- +# 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 configuration delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete the dsc configuration identified by configuration name. + + :example: Delete the DSC Configuration + az automation configuration list -g rg --automation-account-name myAutomationAccount + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/configurations/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return None + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.configuration_name = AAZStrArg( + options=["-n", "--name", "--configuration-name"], + help="The configuration name.", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.DscConfigurationDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class DscConfigurationDelete(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}/configurations/{configurationName}", + **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( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/_list.py b/src/automation/azext_automation/aaz/latest/automation/configuration/_list.py new file mode 100644 index 00000000000..00b8c814413 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/_list.py @@ -0,0 +1,274 @@ +# -------------------------------------------------------------------------------------------- +# 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 configuration list", +) +class List(AAZCommand): + """List a list of configurations. + + :example: List all DSC Configurations + az automation configuration list -g rg --automation-account-name myAutomationAccount + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/configurations", "2023-11-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--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.", + ) + _args_schema.inlinecount = AAZStrArg( + options=["--inlinecount"], + help="Return total rows.", + ) + _args_schema.skip = AAZIntArg( + options=["--skip"], + help="The number of rows to skip.", + ) + _args_schema.top = AAZIntArg( + options=["--top"], + help="The number of rows to take.", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.DscConfigurationListByAutomationAccount(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class DscConfigurationListByAutomationAccount(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}/configurations", + **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( + "$inlinecount", self.ctx.args.inlinecount, + ), + **self.serialize_query_param( + "$skip", self.ctx.args.skip, + ), + **self.serialize_query_param( + "$top", self.ctx.args.top, + ), + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.total_count = AAZIntType( + serialized_name="totalCount", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.etag = AAZStrType() + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.location = AAZStrType() + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.job_count = AAZIntType( + serialized_name="jobCount", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.log_verbose = AAZBoolType( + serialized_name="logVerbose", + ) + properties.node_configuration_count = AAZIntType( + serialized_name="nodeConfigurationCount", + ) + properties.parameters = AAZDictType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source = AAZObjectType() + properties.state = AAZStrType() + + parameters = cls._schema_on_200.value.Element.properties.parameters + parameters.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.parameters.Element + _element.default_value = AAZStrType( + serialized_name="defaultValue", + ) + _element.is_mandatory = AAZBoolType( + serialized_name="isMandatory", + ) + _element.position = AAZIntType() + _element.type = AAZStrType() + + source = cls._schema_on_200.value.Element.properties.source + source.hash = AAZObjectType() + source.type = AAZStrType() + source.value = AAZStrType() + source.version = AAZStrType() + + hash = cls._schema_on_200.value.Element.properties.source.hash + hash.algorithm = AAZStrType( + flags={"required": True}, + ) + hash.value = AAZStrType( + flags={"required": True}, + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/_show.py b/src/automation/azext_automation/aaz/latest/automation/configuration/_show.py new file mode 100644 index 00000000000..57fd87c19ee --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/_show.py @@ -0,0 +1,243 @@ +# -------------------------------------------------------------------------------------------- +# 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 configuration show", +) +class Show(AAZCommand): + """Get the configuration identified by configuration name. + + :example: Get the configuration by its name + az automation configuration show -g rg --automation-account-name myAutomationAccount -n SetupServer + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/configurations/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.configuration_name = AAZStrArg( + options=["-n", "--name", "--configuration-name"], + help="The configuration name.", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.DscConfigurationGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class DscConfigurationGet(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}/configurations/{configurationName}", + **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( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.etag = AAZStrType() + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.location = AAZStrType() + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.job_count = AAZIntType( + serialized_name="jobCount", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.log_verbose = AAZBoolType( + serialized_name="logVerbose", + ) + properties.node_configuration_count = AAZIntType( + serialized_name="nodeConfigurationCount", + ) + properties.parameters = AAZDictType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source = AAZObjectType() + properties.state = AAZStrType() + + parameters = cls._schema_on_200.properties.parameters + parameters.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.parameters.Element + _element.default_value = AAZStrType( + serialized_name="defaultValue", + ) + _element.is_mandatory = AAZBoolType( + serialized_name="isMandatory", + ) + _element.position = AAZIntType() + _element.type = AAZStrType() + + source = cls._schema_on_200.properties.source + source.hash = AAZObjectType() + source.type = AAZStrType() + source.value = AAZStrType() + source.version = AAZStrType() + + hash = cls._schema_on_200.properties.source.hash + hash.algorithm = AAZStrType( + flags={"required": True}, + ) + hash.value = AAZStrType( + flags={"required": True}, + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/_show_content.py b/src/automation/azext_automation/aaz/latest/automation/configuration/_show_content.py new file mode 100644 index 00000000000..815235dffaf --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/_show_content.py @@ -0,0 +1,172 @@ +# -------------------------------------------------------------------------------------------- +# 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 configuration show-content", +) +class ShowContent(AAZCommand): + """Get the configuration script identified by configuration name. + + :example: Show the script content of DSC Configuration + az automation configuration show-content -g rg --automation-account-name myAutomationAccount -n SetupServer + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/configurations/{}/content", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.configuration_name = AAZStrArg( + options=["-n", "--name", "--configuration-name"], + help="The configuration name.", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.DscConfigurationGetContent(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=False) + return result + + class DscConfigurationGetContent(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}/configurations/{configurationName}/content", + **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( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZStrType() + + return cls._schema_on_200 + + +class _ShowContentHelper: + """Helper class for ShowContent""" + + +__all__ = ["ShowContent"] diff --git a/src/automation/azext_automation/aaz/latest/automation/configuration/_update.py b/src/automation/azext_automation/aaz/latest/automation/configuration/_update.py new file mode 100644 index 00000000000..b75844f4aa9 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/configuration/_update.py @@ -0,0 +1,558 @@ +# -------------------------------------------------------------------------------------------- +# 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 configuration update", +) +class Update(AAZCommand): + """Update the configuration identified by configuration name. + + :example: Update script in DSC Configuration + az automation configuration update -g rg --automation-account-name myAutomationAccount -n SetupServer --location westus2 --source-type embeddedContent --source "Configuration SetupServer {\r\n Node localhostServer {\r\n WindowsFeature IIS {\r\n Name = "Web-Server";\r\n Ensure = "Present"\r\n }\r\n }\r\n}" + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/configurations/{}", "2023-11-01"], + ] + } + + 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=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.configuration_name = AAZStrArg( + options=["-n", "--name", "--configuration-name"], + help="The configuration name.", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema + _args_schema.location = AAZStrArg( + options=["--location"], + arg_group="Parameters", + help="Gets or sets the location of the resource.", + nullable=True, + ) + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="Parameters", + help="Gets or sets the tags attached to the resource.", + nullable=True, + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg( + nullable=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.description = AAZStrArg( + options=["--description"], + arg_group="Properties", + help="Gets or sets the description of the configuration.", + nullable=True, + ) + _args_schema.log_progress = AAZBoolArg( + options=["--log-progress"], + arg_group="Properties", + help="Gets or sets progress log option.", + nullable=True, + ) + _args_schema.log_verbose = AAZBoolArg( + options=["--log-verbose"], + arg_group="Properties", + help="Gets or sets verbose log option.", + nullable=True, + ) + _args_schema.parameters = AAZDictArg( + options=["--parameters"], + arg_group="Properties", + help="Gets or sets the configuration parameters.", + nullable=True, + ) + + parameters = cls._args_schema.parameters + parameters.Element = AAZObjectArg( + nullable=True, + ) + + _element = cls._args_schema.parameters.Element + _element.default_value = AAZStrArg( + options=["default-value"], + help="Gets or sets the default value of parameter.", + nullable=True, + ) + _element.is_mandatory = AAZBoolArg( + options=["is-mandatory"], + help="Gets or sets a Boolean value to indicate whether the parameter is mandatory or not.", + nullable=True, + ) + _element.position = AAZIntArg( + options=["position"], + help="Get or sets the position of the parameter.", + nullable=True, + ) + _element.type = AAZStrArg( + options=["type"], + help="Gets or sets the type of the parameter.", + nullable=True, + ) + + # define Arg Group "Source" + + _args_schema = cls._args_schema + _args_schema.source_hash = AAZObjectArg( + options=["--source-hash"], + arg_group="Source", + help="Gets or sets the hash.", + nullable=True, + ) + _args_schema.source_type = AAZStrArg( + options=["--source-type"], + arg_group="Source", + help="Gets or sets the content source type.", + nullable=True, + enum={"embeddedContent": "embeddedContent", "uri": "uri"}, + ) + _args_schema.source = AAZStrArg( + options=["--source"], + arg_group="Source", + help="Gets or sets the value of the content. This is based on the content source type.", + nullable=True, + ) + _args_schema.source_version = AAZStrArg( + options=["--source-version"], + arg_group="Source", + help="Gets or sets the version of the content.", + nullable=True, + ) + + source_hash = cls._args_schema.source_hash + source_hash.algorithm = AAZStrArg( + options=["algorithm"], + help="Gets or sets the content hash algorithm used to hash the content.", + ) + source_hash.value = AAZStrArg( + options=["value"], + help="Gets or sets expected hash value of the content.", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.DscConfigurationGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + self.DscConfigurationCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class DscConfigurationGet(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}/configurations/{configurationName}", + **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( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_dsc_configuration_read(cls._schema_on_200) + + return cls._schema_on_200 + + class DscConfigurationCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/configurations/{configurationName}", + **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( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_dsc_configuration_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("location", AAZStrType, ".location") + _builder.set_prop("name", AAZStrType, ".configuration_name") + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + _builder.set_prop("tags", AAZDictType, ".tags") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("description", AAZStrType, ".description") + properties.set_prop("logProgress", AAZBoolType, ".log_progress") + properties.set_prop("logVerbose", AAZBoolType, ".log_verbose") + properties.set_prop("parameters", AAZDictType, ".parameters") + properties.set_prop("source", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) + + parameters = _builder.get(".properties.parameters") + if parameters is not None: + parameters.set_elements(AAZObjectType, ".") + + _elements = _builder.get(".properties.parameters{}") + if _elements is not None: + _elements.set_prop("defaultValue", AAZStrType, ".default_value") + _elements.set_prop("isMandatory", AAZBoolType, ".is_mandatory") + _elements.set_prop("position", AAZIntType, ".position") + _elements.set_prop("type", AAZStrType, ".type") + + source = _builder.get(".properties.source") + if source is not None: + source.set_prop("hash", AAZObjectType, ".source_hash") + source.set_prop("type", AAZStrType, ".source_type") + source.set_prop("value", AAZStrType, ".source") + source.set_prop("version", AAZStrType, ".source_version") + + hash = _builder.get(".properties.source.hash") + if hash is not None: + hash.set_prop("algorithm", AAZStrType, ".algorithm", typ_kwargs={"flags": {"required": True}}) + hash.set_prop("value", AAZStrType, ".value", typ_kwargs={"flags": {"required": True}}) + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_dsc_configuration_read = None + + @classmethod + def _build_schema_dsc_configuration_read(cls, _schema): + if cls._schema_dsc_configuration_read is not None: + _schema.etag = cls._schema_dsc_configuration_read.etag + _schema.id = cls._schema_dsc_configuration_read.id + _schema.location = cls._schema_dsc_configuration_read.location + _schema.name = cls._schema_dsc_configuration_read.name + _schema.properties = cls._schema_dsc_configuration_read.properties + _schema.tags = cls._schema_dsc_configuration_read.tags + _schema.type = cls._schema_dsc_configuration_read.type + return + + cls._schema_dsc_configuration_read = _schema_dsc_configuration_read = AAZObjectType() + + dsc_configuration_read = _schema_dsc_configuration_read + dsc_configuration_read.etag = AAZStrType() + dsc_configuration_read.id = AAZStrType( + flags={"read_only": True}, + ) + dsc_configuration_read.location = AAZStrType() + dsc_configuration_read.name = AAZStrType( + flags={"read_only": True}, + ) + dsc_configuration_read.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + dsc_configuration_read.tags = AAZDictType() + dsc_configuration_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_dsc_configuration_read.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.job_count = AAZIntType( + serialized_name="jobCount", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.log_verbose = AAZBoolType( + serialized_name="logVerbose", + ) + properties.node_configuration_count = AAZIntType( + serialized_name="nodeConfigurationCount", + ) + properties.parameters = AAZDictType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source = AAZObjectType() + properties.state = AAZStrType() + + parameters = _schema_dsc_configuration_read.properties.parameters + parameters.Element = AAZObjectType() + + _element = _schema_dsc_configuration_read.properties.parameters.Element + _element.default_value = AAZStrType( + serialized_name="defaultValue", + ) + _element.is_mandatory = AAZBoolType( + serialized_name="isMandatory", + ) + _element.position = AAZIntType() + _element.type = AAZStrType() + + source = _schema_dsc_configuration_read.properties.source + source.hash = AAZObjectType() + source.type = AAZStrType() + source.value = AAZStrType() + source.version = AAZStrType() + + hash = _schema_dsc_configuration_read.properties.source.hash + hash.algorithm = AAZStrType( + flags={"required": True}, + ) + hash.value = AAZStrType( + flags={"required": True}, + ) + + tags = _schema_dsc_configuration_read.tags + tags.Element = AAZStrType() + + _schema.etag = cls._schema_dsc_configuration_read.etag + _schema.id = cls._schema_dsc_configuration_read.id + _schema.location = cls._schema_dsc_configuration_read.location + _schema.name = cls._schema_dsc_configuration_read.name + _schema.properties = cls._schema_dsc_configuration_read.properties + _schema.tags = cls._schema_dsc_configuration_read.tags + _schema.type = cls._schema_dsc_configuration_read.type + + +__all__ = ["Update"] 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 index 57348b15fe5..f2aaa89008c 100644 --- a/src/automation/azext_automation/aaz/latest/automation/hrwg/__cmd_group.py +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/__cmd_group.py @@ -15,7 +15,7 @@ "automation hrwg", ) class __CMDGroup(AAZCommandGroup): - """Automation Hybrid Runbook Worker Group + """Automation Hybrid Runbook Worker Group. """ pass 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 index e0316265730..c935d5315f2 100644 --- 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 @@ -15,7 +15,7 @@ "automation hrwg hrw", ) class __CMDGroup(AAZCommandGroup): - """hrw + """Manage Automation Hybrid Runbook Worker. """ pass 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 index 0ec1ee79b3c..272e726d25a 100644 --- a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_move.py +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_move.py @@ -16,15 +16,12 @@ ) class Move(AAZCommand): """Move a hybrid worker to a different group. - - :example: 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 --target-hybrid-runbook-worker-group-name targetHybridWorkerGroupName --hybrid-runbook-worker-id hybridRunbookWorkerId """ _aaz_info = { - "version": "2022-08-08", + "version": "2023-11-01", "resources": [ - ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers/{}/move", "2022-08-08"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers/{}/move", "2023-11-01"], ] } @@ -48,20 +45,32 @@ def _build_arguments_schema(cls, *args, **kwargs): 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=["--hybrid-runbook-worker-id"], + 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 "HybridRunbookWorkerMoveParameters" + + _args_schema = cls._args_schema + _args_schema.target_hybrid_runbook_worker_group_name = AAZStrArg( + options=["--target-hybrid-runbook-worker-group-name"], + arg_group="HybridRunbookWorkerMoveParameters", + help="Gets or sets the target hybrid runbook worker group.", + ) return cls._args_schema def _execute_operations(self): @@ -69,11 +78,11 @@ def _execute_operations(self): self.HybridRunbookWorkersMove(ctx=self.ctx)() self.post_operations() - # @register_callback + @register_callback def pre_operations(self): pass - # @register_callback + @register_callback def post_operations(self): pass @@ -133,7 +142,7 @@ def url_parameters(self): def query_parameters(self): parameters = { **self.serialize_query_param( - "api-version", "2022-08-08", + "api-version", "2023-11-01", required=True, ), } @@ -155,7 +164,7 @@ def content(self): typ=AAZObjectType, typ_kwargs={"flags": {"required": True, "client_flatten": True}} ) - _builder.set_prop("hybridRunbookWorkerGroupName", AAZStrType, ".hybrid_runbook_worker_group_name") + _builder.set_prop("hybridRunbookWorkerGroupName", AAZStrType, ".target_hybrid_runbook_worker_group_name") return self.serialize_content(_content_value) @@ -163,4 +172,8 @@ def on_200(self, session): pass +class _MoveHelper: + """Helper class for Move""" + + __all__ = ["Move"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/__cmd_group.py new file mode 100644 index 00000000000..2c6cac10c83 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/__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 runtime-environment", +) +class __CMDGroup(AAZCommandGroup): + """Manage RuntimeEnvironment. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/__init__.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/__init__.py new file mode 100644 index 00000000000..c401f439385 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/__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/runtime_environment/_create.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_create.py new file mode 100644 index 00000000000..e2604ac42d8 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_create.py @@ -0,0 +1,320 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment create", +) +class Create(AAZCommand): + """Create Runtime Environment. + + :example: Create Runtime Environment + az automation runtime-environment create -g rg --automation-account-name myAutomationAccount --name rt --location westus2 --language PowerShell --version 7.1 --default-packages "{Az:7.3.2}" + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}", "2023-05-15-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["-n", "--name", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema + _args_schema.location = AAZResourceLocationArg( + arg_group="Parameters", + help="The geo-location where the resource lives", + required=True, + fmt=AAZResourceLocationArgFormat( + resource_group_arg="resource_group", + ), + ) + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="Parameters", + help="Resource tags.", + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg() + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.default_packages = AAZDictArg( + options=["--default-packages"], + arg_group="Properties", + help="List of Default packages for Environment", + ) + _args_schema.description = AAZStrArg( + options=["--description"], + arg_group="Properties", + help="Gets or sets the description.", + ) + + default_packages = cls._args_schema.default_packages + default_packages.Element = AAZStrArg() + + # define Arg Group "Runtime" + + _args_schema = cls._args_schema + _args_schema.language = AAZStrArg( + options=["--language"], + arg_group="Runtime", + help="Language of Runtime Environment", + ) + _args_schema.version = AAZStrArg( + options=["--version"], + arg_group="Runtime", + help="Version of Language", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.RuntimeEnvironmentsCreate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class RuntimeEnvironmentsCreate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/runtimeEnvironments/{runtimeEnvironmentName}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"required": True, "client_flatten": True}} + ) + _builder.set_prop("location", AAZStrType, ".location", typ_kwargs={"flags": {"required": True}}) + _builder.set_prop("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) + _builder.set_prop("tags", AAZDictType, ".tags") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("defaultPackages", AAZDictType, ".default_packages") + properties.set_prop("description", AAZStrType, ".description") + properties.set_prop("runtime", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) + + default_packages = _builder.get(".properties.defaultPackages") + if default_packages is not None: + default_packages.set_elements(AAZStrType, ".") + + runtime = _builder.get(".properties.runtime") + if runtime is not None: + runtime.set_prop("language", AAZStrType, ".language") + runtime.set_prop("version", AAZStrType, ".version") + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200_201.tags = AAZDictType() + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.default_packages = AAZDictType( + serialized_name="defaultPackages", + ) + properties.description = AAZStrType() + properties.runtime = AAZObjectType( + flags={"client_flatten": True}, + ) + + default_packages = cls._schema_on_200_201.properties.default_packages + default_packages.Element = AAZStrType() + + runtime = cls._schema_on_200_201.properties.runtime + runtime.language = AAZStrType() + runtime.version = AAZStrType() + + system_data = cls._schema_on_200_201.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200_201.tags + tags.Element = AAZStrType() + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_delete.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_delete.py new file mode 100644 index 00000000000..b8ec20d0395 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_delete.py @@ -0,0 +1,152 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete the Runtime Environment. + + :example: Delete the Runtime Environment + az automation runtime-environment delete -g rg --automation-account-name myAutomationAccount --name rt -y + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}", "2023-05-15-preview"], + ] + } + + 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=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["-n", "--name", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + id_part="child_name_1", + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.RuntimeEnvironmentsDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class RuntimeEnvironmentsDelete(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}/runtimeEnvironments/{runtimeEnvironmentName}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_list.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_list.py new file mode 100644 index 00000000000..f2c56398e14 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_list.py @@ -0,0 +1,233 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment list", +) +class List(AAZCommand): + """List a list of RuntimeEnvironments. + + :example: List Runtime Environments + az automation runtime-environment list -g rg --automation-account-name myAutomationAccount + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments", "2023-05-15-preview"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.RuntimeEnvironmentsListByAutomationAccount(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class RuntimeEnvironmentsListByAutomationAccount(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}/runtimeEnvironments", + **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( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.default_packages = AAZDictType( + serialized_name="defaultPackages", + ) + properties.description = AAZStrType() + properties.runtime = AAZObjectType( + flags={"client_flatten": True}, + ) + + default_packages = cls._schema_on_200.value.Element.properties.default_packages + default_packages.Element = AAZStrType() + + runtime = cls._schema_on_200.value.Element.properties.runtime + runtime.language = AAZStrType() + runtime.version = AAZStrType() + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_show.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_show.py new file mode 100644 index 00000000000..2bdcaea76ad --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_show.py @@ -0,0 +1,236 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment show", +) +class Show(AAZCommand): + """Get information about the Runtime Environment. + + :example: Get information about the Runtime Environment + az automation runtime-environment show -g rg --automation-account-name myAutomationAccount --name rt + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}", "2023-05-15-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["-n", "--name", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + id_part="child_name_1", + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.RuntimeEnvironmentsGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class RuntimeEnvironmentsGet(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}/runtimeEnvironments/{runtimeEnvironmentName}", + **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( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.default_packages = AAZDictType( + serialized_name="defaultPackages", + ) + properties.description = AAZStrType() + properties.runtime = AAZObjectType( + flags={"client_flatten": True}, + ) + + default_packages = cls._schema_on_200.properties.default_packages + default_packages.Element = AAZStrType() + + runtime = cls._schema_on_200.properties.runtime + runtime.language = AAZStrType() + runtime.version = AAZStrType() + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_update.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_update.py new file mode 100644 index 00000000000..63d82f8200c --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/_update.py @@ -0,0 +1,470 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment update", +) +class Update(AAZCommand): + """Update Runtime Environment. + + :example: Update Runtime Environment + az automation runtime-environment update -g rg --automation-account-name myAutomationAccount --name rt --default-packages "{Az:8.0.0}" + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}", "2023-05-15-preview"], + ] + } + + 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=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["-n", "--name", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + id_part="child_name_1", + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="Parameters", + help="Resource tags.", + nullable=True, + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg( + nullable=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.default_packages = AAZDictArg( + options=["--default-packages"], + arg_group="Properties", + help="List of Default packages for Environment", + nullable=True, + ) + _args_schema.description = AAZStrArg( + options=["--description"], + arg_group="Properties", + help="Gets or sets the description.", + nullable=True, + ) + + default_packages = cls._args_schema.default_packages + default_packages.Element = AAZStrArg( + nullable=True, + ) + + # define Arg Group "Runtime" + + _args_schema = cls._args_schema + _args_schema.language = AAZStrArg( + options=["--language"], + arg_group="Runtime", + help="Language of Runtime Environment", + nullable=True, + ) + _args_schema.version = AAZStrArg( + options=["--version"], + arg_group="Runtime", + help="Version of Language", + nullable=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.RuntimeEnvironmentsGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + self.RuntimeEnvironmentsCreate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class RuntimeEnvironmentsGet(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}/runtimeEnvironments/{runtimeEnvironmentName}", + **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( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_runtime_environment_read(cls._schema_on_200) + + return cls._schema_on_200 + + class RuntimeEnvironmentsCreate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/runtimeEnvironments/{runtimeEnvironmentName}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_runtime_environment_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) + _builder.set_prop("tags", AAZDictType, ".tags") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("defaultPackages", AAZDictType, ".default_packages") + properties.set_prop("description", AAZStrType, ".description") + properties.set_prop("runtime", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) + + default_packages = _builder.get(".properties.defaultPackages") + if default_packages is not None: + default_packages.set_elements(AAZStrType, ".") + + runtime = _builder.get(".properties.runtime") + if runtime is not None: + runtime.set_prop("language", AAZStrType, ".language") + runtime.set_prop("version", AAZStrType, ".version") + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_runtime_environment_read = None + + @classmethod + def _build_schema_runtime_environment_read(cls, _schema): + if cls._schema_runtime_environment_read is not None: + _schema.id = cls._schema_runtime_environment_read.id + _schema.location = cls._schema_runtime_environment_read.location + _schema.name = cls._schema_runtime_environment_read.name + _schema.properties = cls._schema_runtime_environment_read.properties + _schema.system_data = cls._schema_runtime_environment_read.system_data + _schema.tags = cls._schema_runtime_environment_read.tags + _schema.type = cls._schema_runtime_environment_read.type + return + + cls._schema_runtime_environment_read = _schema_runtime_environment_read = AAZObjectType() + + runtime_environment_read = _schema_runtime_environment_read + runtime_environment_read.id = AAZStrType( + flags={"read_only": True}, + ) + runtime_environment_read.location = AAZStrType( + flags={"required": True}, + ) + runtime_environment_read.name = AAZStrType( + flags={"read_only": True}, + ) + runtime_environment_read.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + runtime_environment_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + runtime_environment_read.tags = AAZDictType() + runtime_environment_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_runtime_environment_read.properties + properties.default_packages = AAZDictType( + serialized_name="defaultPackages", + ) + properties.description = AAZStrType() + properties.runtime = AAZObjectType( + flags={"client_flatten": True}, + ) + + default_packages = _schema_runtime_environment_read.properties.default_packages + default_packages.Element = AAZStrType() + + runtime = _schema_runtime_environment_read.properties.runtime + runtime.language = AAZStrType() + runtime.version = AAZStrType() + + system_data = _schema_runtime_environment_read.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = _schema_runtime_environment_read.tags + tags.Element = AAZStrType() + + _schema.id = cls._schema_runtime_environment_read.id + _schema.location = cls._schema_runtime_environment_read.location + _schema.name = cls._schema_runtime_environment_read.name + _schema.properties = cls._schema_runtime_environment_read.properties + _schema.system_data = cls._schema_runtime_environment_read.system_data + _schema.tags = cls._schema_runtime_environment_read.tags + _schema.type = cls._schema_runtime_environment_read.type + + +__all__ = ["Update"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/__cmd_group.py new file mode 100644 index 00000000000..d6fa7536d93 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/__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 runtime-environment package", +) +class __CMDGroup(AAZCommandGroup): + """Manage Package for Runtime Environment. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/__init__.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/__init__.py new file mode 100644 index 00000000000..c401f439385 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/__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/runtime_environment/package/_create.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_create.py new file mode 100644 index 00000000000..1d0c36faaa8 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_create.py @@ -0,0 +1,387 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment package create", +) +class Create(AAZCommand): + """Create the package identified by package name. + + :example: Create Runtime Environment Package + az automation runtime-environment package create -g rg--automation-account-name myAutomationAccount --runtime-environment-name rt --name rt-package --uri https://teststorage.blob.core.windows.net/mycontainer/MyModule.zip --content-version 1.0.0.0 + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}/packages/{}", "2023-05-15-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.package_name = AAZStrArg( + options=["-n", "--name", "--package-name"], + help="The name of Package.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["--environment", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + + # define Arg Group "ContentLink" + + _args_schema = cls._args_schema + _args_schema.content_hash = AAZObjectArg( + options=["--content-hash"], + arg_group="ContentLink", + help="Gets or sets the hash of content.", + ) + _args_schema.content_uri = AAZStrArg( + options=["--uri", "--content-uri"], + arg_group="ContentLink", + help="Gets or sets the uri of content.", + ) + _args_schema.content_version = AAZStrArg( + options=["--content-version"], + arg_group="ContentLink", + help="Gets or sets the version of the content.", + ) + + content_hash = cls._args_schema.content_hash + content_hash.algorithm = AAZStrArg( + options=["algorithm"], + help="Gets or sets the content hash algorithm used to hash the content.", + required=True, + ) + content_hash.value = AAZStrArg( + options=["value"], + help="Gets or sets expected hash value of the content.", + required=True, + ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema + _args_schema.all_of = AAZObjectArg( + options=["--all-of"], + arg_group="Parameters", + help="The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + ) + + all_of = cls._args_schema.all_of + all_of.location = AAZResourceLocationArg( + options=["l", "location"], + help="The geo-location where the resource lives", + required=True, + fmt=AAZResourceLocationArgFormat( + resource_group_arg="resource_group", + ), + ) + all_of.tags = AAZDictArg( + options=["tags"], + help="Resource tags.", + ) + + tags = cls._args_schema.all_of.tags + tags.Element = AAZStrArg() + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.PackageCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class PackageCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/runtimeEnvironments/{runtimeEnvironmentName}/packages/{packageName}", + **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( + "packageName", self.ctx.args.package_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"required": True, "client_flatten": True}} + ) + _builder.set_prop("allOf", AAZObjectType, ".all_of") + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + all_of = _builder.get(".allOf") + if all_of is not None: + all_of.set_prop("location", AAZStrType, ".location", typ_kwargs={"flags": {"required": True}}) + all_of.set_prop("tags", AAZDictType, ".tags") + + tags = _builder.get(".allOf.tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("contentLink", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) + + content_link = _builder.get(".properties.contentLink") + if content_link is not None: + content_link.set_prop("contentHash", AAZObjectType, ".content_hash") + content_link.set_prop("uri", AAZStrType, ".content_uri") + content_link.set_prop("version", AAZStrType, ".content_version") + + content_hash = _builder.get(".properties.contentLink.contentHash") + if content_hash is not None: + content_hash.set_prop("algorithm", AAZStrType, ".algorithm", typ_kwargs={"flags": {"required": True}}) + content_hash.set_prop("value", AAZStrType, ".value", typ_kwargs={"flags": {"required": True}}) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _CreateHelper._build_schema_system_data_read(_schema_on_200_201.system_data) + _schema_on_200_201.tags = AAZDictType() + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.all_of = AAZObjectType( + serialized_name="allOf", + flags={"read_only": True}, + ) + _CreateHelper._build_schema_system_data_read(properties.all_of) + properties.content_link = AAZObjectType( + serialized_name="contentLink", + ) + properties.default = AAZBoolType() + properties.error = AAZObjectType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.size_in_bytes = AAZIntType( + serialized_name="sizeInBytes", + ) + properties.version = AAZStrType() + + content_link = cls._schema_on_200_201.properties.content_link + content_link.content_hash = AAZObjectType( + serialized_name="contentHash", + ) + content_link.uri = AAZStrType() + content_link.version = AAZStrType() + + content_hash = cls._schema_on_200_201.properties.content_link.content_hash + content_hash.algorithm = AAZStrType( + flags={"required": True}, + ) + content_hash.value = AAZStrType( + flags={"required": True}, + ) + + error = cls._schema_on_200_201.properties.error + error.code = AAZStrType() + error.message = AAZStrType() + + tags = cls._schema_on_200_201.tags + tags.Element = AAZStrType() + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + + +__all__ = ["Create"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_delete.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_delete.py new file mode 100644 index 00000000000..b9009ceb425 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_delete.py @@ -0,0 +1,162 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment package delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete the package by name. + + :example: Delete the package + az automation runtime-environment package delete -g rg --automation-account-name myAutomationAccount --runtime-environment-name rt --name rt-package + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}/packages/{}", "2023-05-15-preview"], + ] + } + + 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=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.package_name = AAZStrArg( + options=["-n", "--name", "--package-name"], + help="The Package name.", + required=True, + id_part="child_name_2", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["--environment", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + id_part="child_name_1", + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.PackageDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class PackageDelete(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}/runtimeEnvironments/{runtimeEnvironmentName}/packages/{packageName}", + **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( + "packageName", self.ctx.args.package_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_list.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_list.py new file mode 100644 index 00000000000..8e7ec18e48b --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_list.py @@ -0,0 +1,293 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment package list", +) +class List(AAZCommand): + """List the a list of Packages + + :example: List packages in Runtime Environment + az automation runtime-environment package list -g rg --automation-account-name myAutomationAccount --runtime-environment-name rt + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}/packages", "2023-05-15-preview"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["--environment", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.PackageListByRuntimeEnvironment(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class PackageListByRuntimeEnvironment(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}/runtimeEnvironments/{runtimeEnvironmentName}/packages", + **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( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _ListHelper._build_schema_system_data_read(_element.system_data) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.all_of = AAZObjectType( + serialized_name="allOf", + flags={"read_only": True}, + ) + _ListHelper._build_schema_system_data_read(properties.all_of) + properties.content_link = AAZObjectType( + serialized_name="contentLink", + ) + properties.default = AAZBoolType() + properties.error = AAZObjectType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.size_in_bytes = AAZIntType( + serialized_name="sizeInBytes", + ) + properties.version = AAZStrType() + + content_link = cls._schema_on_200.value.Element.properties.content_link + content_link.content_hash = AAZObjectType( + serialized_name="contentHash", + ) + content_link.uri = AAZStrType() + content_link.version = AAZStrType() + + content_hash = cls._schema_on_200.value.Element.properties.content_link.content_hash + content_hash.algorithm = AAZStrType( + flags={"required": True}, + ) + content_hash.value = AAZStrType( + flags={"required": True}, + ) + + error = cls._schema_on_200.value.Element.properties.error + error.code = AAZStrType() + error.message = AAZStrType() + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_show.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_show.py new file mode 100644 index 00000000000..b49798e370f --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_show.py @@ -0,0 +1,294 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment package show", +) +class Show(AAZCommand): + """Get the Package identified by Package name. + + :example: Get the information about the package + az automation runtime-environment package show -g rg --automation-account-name myAutomationAccount --runtime-environment-name rt --name rt-package + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}/packages/{}", "2023-05-15-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.package_name = AAZStrArg( + options=["-n", "--name", "--package-name"], + help="The Package name.", + required=True, + id_part="child_name_2", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["--environment", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + id_part="child_name_1", + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.PackageGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class PackageGet(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}/runtimeEnvironments/{runtimeEnvironmentName}/packages/{packageName}", + **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( + "packageName", self.ctx.args.package_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _ShowHelper._build_schema_system_data_read(_schema_on_200.system_data) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.all_of = AAZObjectType( + serialized_name="allOf", + flags={"read_only": True}, + ) + _ShowHelper._build_schema_system_data_read(properties.all_of) + properties.content_link = AAZObjectType( + serialized_name="contentLink", + ) + properties.default = AAZBoolType() + properties.error = AAZObjectType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.size_in_bytes = AAZIntType( + serialized_name="sizeInBytes", + ) + properties.version = AAZStrType() + + content_link = cls._schema_on_200.properties.content_link + content_link.content_hash = AAZObjectType( + serialized_name="contentHash", + ) + content_link.uri = AAZStrType() + content_link.version = AAZStrType() + + content_hash = cls._schema_on_200.properties.content_link.content_hash + content_hash.algorithm = AAZStrType( + flags={"required": True}, + ) + content_hash.value = AAZStrType( + flags={"required": True}, + ) + + error = cls._schema_on_200.properties.error + error.code = AAZStrType() + error.message = AAZStrType() + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_update.py b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_update.py new file mode 100644 index 00000000000..4727482ec9a --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/runtime_environment/package/_update.py @@ -0,0 +1,538 @@ +# -------------------------------------------------------------------------------------------- +# 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 runtime-environment package update", +) +class Update(AAZCommand): + """Update the package identified by package name. + + :example: Update the package + az automation runtime-environment package update -g rg --automation-account-name myAutomationAccount --runtime-environment-name rt --name rt-package --uri https://teststorage.blob.core.windows.net/mycontainer/MyModule.zip --content-version 1.0.0.0 + """ + + _aaz_info = { + "version": "2023-05-15-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/runtimeenvironments/{}/packages/{}", "2023-05-15-preview"], + ] + } + + 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=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.package_name = AAZStrArg( + options=["-n", "--name", "--package-name"], + help="The Package name.", + required=True, + id_part="child_name_2", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.runtime_environment_name = AAZStrArg( + options=["--environment", "--runtime-environment-name"], + help="The name of the Runtime Environment.", + required=True, + id_part="child_name_1", + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z][a-zA-Z-_0-9]*$", + ), + ) + + # define Arg Group "ContentLink" + + _args_schema = cls._args_schema + _args_schema.content_hash = AAZObjectArg( + options=["--content-hash"], + arg_group="ContentLink", + help="Gets or sets the hash of content.", + nullable=True, + ) + _args_schema.content_uri = AAZStrArg( + options=["--uri", "--content-uri"], + arg_group="ContentLink", + help="Gets or sets the uri of content.", + nullable=True, + ) + _args_schema.content_version = AAZStrArg( + options=["--content-version"], + arg_group="ContentLink", + help="Gets or sets the version of the content.", + nullable=True, + ) + + content_hash = cls._args_schema.content_hash + content_hash.algorithm = AAZStrArg( + options=["algorithm"], + help="Gets or sets the content hash algorithm used to hash the content.", + ) + content_hash.value = AAZStrArg( + options=["value"], + help="Gets or sets expected hash value of the content.", + ) + + # define Arg Group "Parameters" + + _args_schema = cls._args_schema + _args_schema.all_of = AAZObjectArg( + options=["--all-of"], + arg_group="Parameters", + help="The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + nullable=True, + ) + + all_of = cls._args_schema.all_of + all_of.tags = AAZDictArg( + options=["tags"], + help="Resource tags.", + nullable=True, + ) + + tags = cls._args_schema.all_of.tags + tags.Element = AAZStrArg( + nullable=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.PackageGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + self.PackageCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class PackageGet(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}/runtimeEnvironments/{runtimeEnvironmentName}/packages/{packageName}", + **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( + "packageName", self.ctx.args.package_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_package_read(cls._schema_on_200) + + return cls._schema_on_200 + + class PackageCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/runtimeEnvironments/{runtimeEnvironmentName}/packages/{packageName}", + **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( + "packageName", self.ctx.args.package_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "runtimeEnvironmentName", self.ctx.args.runtime_environment_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-05-15-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_package_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("allOf", AAZObjectType, ".all_of") + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + all_of = _builder.get(".allOf") + if all_of is not None: + all_of.set_prop("tags", AAZDictType, ".tags") + + tags = _builder.get(".allOf.tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("contentLink", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}}) + + content_link = _builder.get(".properties.contentLink") + if content_link is not None: + content_link.set_prop("contentHash", AAZObjectType, ".content_hash") + content_link.set_prop("uri", AAZStrType, ".content_uri") + content_link.set_prop("version", AAZStrType, ".content_version") + + content_hash = _builder.get(".properties.contentLink.contentHash") + if content_hash is not None: + content_hash.set_prop("algorithm", AAZStrType, ".algorithm", typ_kwargs={"flags": {"required": True}}) + content_hash.set_prop("value", AAZStrType, ".value", typ_kwargs={"flags": {"required": True}}) + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_package_read = None + + @classmethod + def _build_schema_package_read(cls, _schema): + if cls._schema_package_read is not None: + _schema.id = cls._schema_package_read.id + _schema.location = cls._schema_package_read.location + _schema.name = cls._schema_package_read.name + _schema.properties = cls._schema_package_read.properties + _schema.system_data = cls._schema_package_read.system_data + _schema.tags = cls._schema_package_read.tags + _schema.type = cls._schema_package_read.type + return + + cls._schema_package_read = _schema_package_read = AAZObjectType() + + package_read = _schema_package_read + package_read.id = AAZStrType( + flags={"read_only": True}, + ) + package_read.location = AAZStrType( + flags={"required": True}, + ) + package_read.name = AAZStrType( + flags={"read_only": True}, + ) + package_read.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + package_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + cls._build_schema_system_data_read(package_read.system_data) + package_read.tags = AAZDictType() + package_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_package_read.properties + properties.all_of = AAZObjectType( + serialized_name="allOf", + flags={"read_only": True}, + ) + cls._build_schema_system_data_read(properties.all_of) + properties.content_link = AAZObjectType( + serialized_name="contentLink", + ) + properties.default = AAZBoolType() + properties.error = AAZObjectType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.size_in_bytes = AAZIntType( + serialized_name="sizeInBytes", + ) + properties.version = AAZStrType() + + content_link = _schema_package_read.properties.content_link + content_link.content_hash = AAZObjectType( + serialized_name="contentHash", + ) + content_link.uri = AAZStrType() + content_link.version = AAZStrType() + + content_hash = _schema_package_read.properties.content_link.content_hash + content_hash.algorithm = AAZStrType( + flags={"required": True}, + ) + content_hash.value = AAZStrType( + flags={"required": True}, + ) + + error = _schema_package_read.properties.error + error.code = AAZStrType() + error.message = AAZStrType() + + tags = _schema_package_read.tags + tags.Element = AAZStrType() + + _schema.id = cls._schema_package_read.id + _schema.location = cls._schema_package_read.location + _schema.name = cls._schema_package_read.name + _schema.properties = cls._schema_package_read.properties + _schema.system_data = cls._schema_package_read.system_data + _schema.tags = cls._schema_package_read.tags + _schema.type = cls._schema_package_read.type + + _schema_system_data_read = None + + @classmethod + def _build_schema_system_data_read(cls, _schema): + if cls._schema_system_data_read is not None: + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + return + + cls._schema_system_data_read = _schema_system_data_read = AAZObjectType( + flags={"read_only": True} + ) + + system_data_read = _schema_system_data_read + system_data_read.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data_read.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data_read.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data_read.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data_read.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data_read.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.created_at = cls._schema_system_data_read.created_at + _schema.created_by = cls._schema_system_data_read.created_by + _schema.created_by_type = cls._schema_system_data_read.created_by_type + _schema.last_modified_at = cls._schema_system_data_read.last_modified_at + _schema.last_modified_by = cls._schema_system_data_read.last_modified_by + _schema.last_modified_by_type = cls._schema_system_data_read.last_modified_by_type + + +__all__ = ["Update"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/source_control/__cmd_group.py new file mode 100644 index 00000000000..e6d56a9c287 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/__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 source-control", +) +class __CMDGroup(AAZCommandGroup): + """Manage source control. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/__init__.py b/src/automation/azext_automation/aaz/latest/automation/source_control/__init__.py new file mode 100644 index 00000000000..c401f439385 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/__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/source_control/_create.py b/src/automation/azext_automation/aaz/latest/automation/source_control/_create.py new file mode 100644 index 00000000000..2dc43e20521 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/_create.py @@ -0,0 +1,318 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control create", +) +class Create(AAZCommand): + """Create a source control. + + :example: Create source control + az automation source-control create -g rg --automation-account-name myAutomationAccount --name source-control --repo-url https://github.com/myAccount/myRepo.git --branch master --source-type GitHub --folder-path / --access-token ghp_MOCKED_GITHUB_TOKEN --token-type PersonalAccessToken --publish-runbook false + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["-n", "--name", "--source-control-name"], + help="The source control name.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.auto_sync = AAZBoolArg( + options=["--auto-sync"], + arg_group="Properties", + help="The auto async of the source control. Default is false.", + ) + _args_schema.branch = AAZStrArg( + options=["--branch"], + arg_group="Properties", + help="The repo branch of the source control. Include branch as empty string for VsoTfvc.", + fmt=AAZStrArgFormat( + max_length=255, + ), + ) + _args_schema.description = AAZStrArg( + options=["--description"], + arg_group="Properties", + help="The user description of the source control.", + fmt=AAZStrArgFormat( + max_length=512, + ), + ) + _args_schema.folder_path = AAZStrArg( + options=["--folder-path"], + arg_group="Properties", + help="The folder path of the source control. Path must be relative.", + fmt=AAZStrArgFormat( + max_length=255, + ), + ) + _args_schema.publish_runbook = AAZBoolArg( + options=["--publish-runbook"], + arg_group="Properties", + help="The auto publish of the source control. Default is true.", + ) + _args_schema.repo_url = AAZStrArg( + options=["--repo-url"], + arg_group="Properties", + help="The repo url of the source control.", + fmt=AAZStrArgFormat( + max_length=2000, + ), + ) + _args_schema.source_type = AAZStrArg( + options=["--source-type"], + arg_group="Properties", + help="The source type. Must be one of VsoGit, VsoTfvc, GitHub, case sensitive.", + enum={"GitHub": "GitHub", "VsoGit": "VsoGit", "VsoTfvc": "VsoTfvc"}, + ) + + # define Arg Group "SecurityToken" + + _args_schema = cls._args_schema + _args_schema.access_token = AAZStrArg( + options=["--access-token"], + arg_group="SecurityToken", + help="The access token.", + fmt=AAZStrArgFormat( + max_length=1024, + ), + ) + _args_schema.refresh_token = AAZStrArg( + options=["--refresh-token"], + arg_group="SecurityToken", + help="The refresh token.", + fmt=AAZStrArgFormat( + max_length=1024, + ), + ) + _args_schema.token_type = AAZStrArg( + options=["--token-type"], + arg_group="SecurityToken", + help="The token type. Must be either PersonalAccessToken or Oauth.", + enum={"Oauth": "Oauth", "PersonalAccessToken": "PersonalAccessToken"}, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SourceControlCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/sourceControls/{sourceControlName}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"required": True, "client_flatten": True}} + ) + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("autoSync", AAZBoolType, ".auto_sync") + properties.set_prop("branch", AAZStrType, ".branch") + properties.set_prop("description", AAZStrType, ".description") + properties.set_prop("folderPath", AAZStrType, ".folder_path") + properties.set_prop("publishRunbook", AAZBoolType, ".publish_runbook") + properties.set_prop("repoUrl", AAZStrType, ".repo_url") + properties.set_prop("securityToken", AAZObjectType) + properties.set_prop("sourceType", AAZStrType, ".source_type") + + security_token = _builder.get(".properties.securityToken") + if security_token is not None: + security_token.set_prop("accessToken", AAZStrType, ".access_token") + security_token.set_prop("refreshToken", AAZStrType, ".refresh_token") + security_token.set_prop("tokenType", AAZStrType, ".token_type") + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.auto_sync = AAZBoolType( + serialized_name="autoSync", + ) + properties.branch = AAZStrType() + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.folder_path = AAZStrType( + serialized_name="folderPath", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.publish_runbook = AAZBoolType( + serialized_name="publishRunbook", + ) + properties.repo_url = AAZStrType( + serialized_name="repoUrl", + ) + properties.source_type = AAZStrType( + serialized_name="sourceType", + ) + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/_delete.py b/src/automation/azext_automation/aaz/latest/automation/source_control/_delete.py new file mode 100644 index 00000000000..d7f0da537fc --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/_delete.py @@ -0,0 +1,144 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete the source control. + + :example: Delete the source control + az automation source-control delete -g rg --automation-account-name myAutomationAccount --name sourceControl -y + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return None + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["-n", "--name", "--source-control-name"], + help="The name of source control.", + required=True, + id_part="child_name_1", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class SourceControlDelete(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}/sourceControls/{sourceControlName}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/_list.py b/src/automation/azext_automation/aaz/latest/automation/source_control/_list.py new file mode 100644 index 00000000000..5a7ad4af500 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/_list.py @@ -0,0 +1,218 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control list", +) +class List(AAZCommand): + """List a list of source controls. + + :example: List source control + az automation source-control list -g rg --automation-account-name myAutomationAccount + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols", "2023-11-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--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.pre_operations() + self.SourceControlListByAutomationAccount(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class SourceControlListByAutomationAccount(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}/sourceControls", + **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", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + 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.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.auto_sync = AAZBoolType( + serialized_name="autoSync", + ) + properties.branch = AAZStrType() + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.folder_path = AAZStrType( + serialized_name="folderPath", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.publish_runbook = AAZBoolType( + serialized_name="publishRunbook", + ) + properties.repo_url = AAZStrType( + serialized_name="repoUrl", + ) + properties.source_type = AAZStrType( + serialized_name="sourceType", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/_show.py b/src/automation/azext_automation/aaz/latest/automation/source_control/_show.py new file mode 100644 index 00000000000..43c60bfac65 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/_show.py @@ -0,0 +1,211 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control show", +) +class Show(AAZCommand): + """Get the source control identified by source control name. + + :example: Get information about the source control + az automation source-control show -g rg --automation-account-name myAutomationAccount --name sourceControl + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["-n", "--name", "--source-control-name"], + help="The name of source control.", + required=True, + id_part="child_name_1", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SourceControlGet(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}/sourceControls/{sourceControlName}", + **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( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.auto_sync = AAZBoolType( + serialized_name="autoSync", + ) + properties.branch = AAZStrType() + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.folder_path = AAZStrType( + serialized_name="folderPath", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.publish_runbook = AAZBoolType( + serialized_name="publishRunbook", + ) + properties.repo_url = AAZStrType( + serialized_name="repoUrl", + ) + properties.source_type = AAZStrType( + serialized_name="sourceType", + ) + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/_update.py b/src/automation/azext_automation/aaz/latest/automation/source_control/_update.py new file mode 100644 index 00000000000..39ceb467213 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/_update.py @@ -0,0 +1,472 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control update", +) +class Update(AAZCommand): + """Update a source control. + + :example: Update source control properties + az automation source-control update -g rg --automation-account-name myAutomationAccount --name sourceControl --access-token ghp_GITHUB_TOKEN --token-type PersonalAccessToken --publish-runbook True + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}", "2023-11-01"], + ] + } + + 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=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["-n", "--name", "--source-control-name"], + help="The name of source control.", + required=True, + id_part="child_name_1", + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.auto_sync = AAZBoolArg( + options=["--auto-sync"], + arg_group="Properties", + help="The auto async of the source control. Default is false.", + nullable=True, + ) + _args_schema.branch = AAZStrArg( + options=["--branch"], + arg_group="Properties", + help="The repo branch of the source control. Include branch as empty string for VsoTfvc.", + nullable=True, + fmt=AAZStrArgFormat( + max_length=255, + ), + ) + _args_schema.description = AAZStrArg( + options=["--description"], + arg_group="Properties", + help="The user description of the source control.", + nullable=True, + fmt=AAZStrArgFormat( + max_length=512, + ), + ) + _args_schema.folder_path = AAZStrArg( + options=["--folder-path"], + arg_group="Properties", + help="The folder path of the source control. Path must be relative.", + nullable=True, + fmt=AAZStrArgFormat( + max_length=255, + ), + ) + _args_schema.publish_runbook = AAZBoolArg( + options=["--publish-runbook"], + arg_group="Properties", + help="The auto publish of the source control. Default is true.", + nullable=True, + ) + _args_schema.repo_url = AAZStrArg( + options=["--repo-url"], + arg_group="Properties", + help="The repo url of the source control.", + nullable=True, + fmt=AAZStrArgFormat( + max_length=2000, + ), + ) + _args_schema.source_type = AAZStrArg( + options=["--source-type"], + arg_group="Properties", + help="The source type. Must be one of VsoGit, VsoTfvc, GitHub, case sensitive.", + nullable=True, + enum={"GitHub": "GitHub", "VsoGit": "VsoGit", "VsoTfvc": "VsoTfvc"}, + ) + + # define Arg Group "SecurityToken" + + _args_schema = cls._args_schema + _args_schema.access_token = AAZStrArg( + options=["--access-token"], + arg_group="SecurityToken", + help="The access token.", + nullable=True, + fmt=AAZStrArgFormat( + max_length=1024, + ), + ) + _args_schema.refresh_token = AAZStrArg( + options=["--refresh-token"], + arg_group="SecurityToken", + help="The refresh token.", + nullable=True, + fmt=AAZStrArgFormat( + max_length=1024, + ), + ) + _args_schema.token_type = AAZStrArg( + options=["--token-type"], + arg_group="SecurityToken", + help="The token type. Must be either PersonalAccessToken or Oauth.", + nullable=True, + enum={"Oauth": "Oauth", "PersonalAccessToken": "PersonalAccessToken"}, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + self.SourceControlCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SourceControlGet(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}/sourceControls/{sourceControlName}", + **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( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_source_control_read(cls._schema_on_200) + + return cls._schema_on_200 + + class SourceControlCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200, 201]: + return self.on_200_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/sourceControls/{sourceControlName}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_source_control_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("autoSync", AAZBoolType, ".auto_sync") + properties.set_prop("branch", AAZStrType, ".branch") + properties.set_prop("description", AAZStrType, ".description") + properties.set_prop("folderPath", AAZStrType, ".folder_path") + properties.set_prop("publishRunbook", AAZBoolType, ".publish_runbook") + properties.set_prop("repoUrl", AAZStrType, ".repo_url") + properties.set_prop("securityToken", AAZObjectType) + properties.set_prop("sourceType", AAZStrType, ".source_type") + + security_token = _builder.get(".properties.securityToken") + if security_token is not None: + security_token.set_prop("accessToken", AAZStrType, ".access_token") + security_token.set_prop("refreshToken", AAZStrType, ".refresh_token") + security_token.set_prop("tokenType", AAZStrType, ".token_type") + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_source_control_read = None + + @classmethod + def _build_schema_source_control_read(cls, _schema): + if cls._schema_source_control_read is not None: + _schema.id = cls._schema_source_control_read.id + _schema.name = cls._schema_source_control_read.name + _schema.properties = cls._schema_source_control_read.properties + _schema.type = cls._schema_source_control_read.type + return + + cls._schema_source_control_read = _schema_source_control_read = AAZObjectType() + + source_control_read = _schema_source_control_read + source_control_read.id = AAZStrType( + flags={"read_only": True}, + ) + source_control_read.name = AAZStrType( + flags={"read_only": True}, + ) + source_control_read.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + source_control_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_source_control_read.properties + properties.auto_sync = AAZBoolType( + serialized_name="autoSync", + ) + properties.branch = AAZStrType() + properties.creation_time = AAZStrType( + serialized_name="creationTime", + ) + properties.description = AAZStrType() + properties.folder_path = AAZStrType( + serialized_name="folderPath", + ) + properties.last_modified_time = AAZStrType( + serialized_name="lastModifiedTime", + ) + properties.publish_runbook = AAZBoolType( + serialized_name="publishRunbook", + ) + properties.repo_url = AAZStrType( + serialized_name="repoUrl", + ) + properties.source_type = AAZStrType( + serialized_name="sourceType", + ) + + _schema.id = cls._schema_source_control_read.id + _schema.name = cls._schema_source_control_read.name + _schema.properties = cls._schema_source_control_read.properties + _schema.type = cls._schema_source_control_read.type + + +__all__ = ["Update"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/__cmd_group.py new file mode 100644 index 00000000000..b9697b3f1a0 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/__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 source-control sync-job", +) +class __CMDGroup(AAZCommandGroup): + """Manage source control sync jobs. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/__init__.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/__init__.py new file mode 100644 index 00000000000..464e9a9d209 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/__init__.py @@ -0,0 +1,15 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._create import * +from ._list import * +from ._show import * +from ._update import * diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_create.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_create.py new file mode 100644 index 00000000000..a12351db338 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_create.py @@ -0,0 +1,249 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control sync-job create", +) +class Create(AAZCommand): + """Create the sync job for a source control. + + :example: Create source control sync job + az automation source-control sync-job create -g rg --automation-account-name myAutomationAccount --source-control-name sourceControl --job-id abcdef01-2345-6789-9bed-a01234567890 --commit-id "" + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}/sourcecontrolsyncjobs/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["--source-control-name"], + help="The source control name.", + required=True, + ) + _args_schema.source_control_sync_job_id = AAZUuidArg( + options=["-n", "--name", "--job-id", "--source-control-sync-job-id"], + help="The source control sync job id.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.commit_id = AAZStrArg( + options=["--commit-id"], + arg_group="Properties", + help="The commit id of the source control sync job. If not syncing to a commitId, enter an empty string.", + required=True, + fmt=AAZStrArgFormat( + min_length=0, + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlSyncJobCreate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SourceControlSyncJobCreate(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}/sourceControls/{sourceControlName}/sourceControlSyncJobs/{sourceControlSyncJobId}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "sourceControlSyncJobId", self.ctx.args.source_control_sync_job_id, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"required": True, "client_flatten": True}} + ) + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("commitId", AAZStrType, ".commit_id", typ_kwargs={"flags": {"required": True}}) + + 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.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_201.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + flags={"read_only": True}, + ) + properties.end_time = AAZStrType( + serialized_name="endTime", + nullable=True, + flags={"read_only": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source_control_sync_job_id = AAZStrType( + serialized_name="sourceControlSyncJobId", + ) + properties.start_time = AAZStrType( + serialized_name="startTime", + nullable=True, + flags={"read_only": True}, + ) + properties.sync_type = AAZStrType( + serialized_name="syncType", + ) + + return cls._schema_on_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_list.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_list.py new file mode 100644 index 00000000000..9827a5ed4b6 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_list.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 source-control sync-job list", +) +class List(AAZCommand): + """List a list of source control sync jobs. + + :example: List sync jobs + az automation source-control sync-job list -g rg --automation-account-name myAutomationAccount --source-control-name sourceControl + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}/sourcecontrolsyncjobs", "2023-11-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["--source-control-name"], + help="The source control name.", + 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.pre_operations() + self.SourceControlSyncJobListByAutomationAccount(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class SourceControlSyncJobListByAutomationAccount(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}/sourceControls/{sourceControlName}/sourceControlSyncJobs", + **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( + "sourceControlName", self.ctx.args.source_control_name, + 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", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + 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.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + flags={"read_only": True}, + ) + properties.end_time = AAZStrType( + serialized_name="endTime", + nullable=True, + flags={"read_only": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source_control_sync_job_id = AAZStrType( + serialized_name="sourceControlSyncJobId", + ) + properties.start_time = AAZStrType( + serialized_name="startTime", + nullable=True, + flags={"read_only": True}, + ) + properties.sync_type = AAZStrType( + serialized_name="syncType", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_show.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_show.py new file mode 100644 index 00000000000..00fa6cbd1bd --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_show.py @@ -0,0 +1,214 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control sync-job show", +) +class Show(AAZCommand): + """Get the source control sync job identified by job id. + + :example: Get information about the sync job + az automation source-control sync-job show -g rg --automation-account-name myAutomationAccount --source-control-name sourceControl --job-id abcdef01-2345-6789-9bed-a01234567890 + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}/sourcecontrolsyncjobs/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["--source-control-name"], + help="The source control name.", + required=True, + id_part="child_name_1", + ) + _args_schema.source_control_sync_job_id = AAZUuidArg( + options=["-n", "--name", "--job-id", "--source-control-sync-job-id"], + help="The source control sync job id.", + required=True, + id_part="child_name_2", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlSyncJobGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SourceControlSyncJobGet(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}/sourceControls/{sourceControlName}/sourceControlSyncJobs/{sourceControlSyncJobId}", + **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( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "sourceControlSyncJobId", self.ctx.args.source_control_sync_job_id, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType() + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + + properties = cls._schema_on_200.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + flags={"read_only": True}, + ) + properties.end_time = AAZStrType( + serialized_name="endTime", + nullable=True, + flags={"read_only": True}, + ) + properties.exception = AAZStrType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source_control_sync_job_id = AAZStrType( + serialized_name="sourceControlSyncJobId", + ) + properties.start_time = AAZStrType( + serialized_name="startTime", + nullable=True, + flags={"read_only": True}, + ) + properties.sync_type = AAZStrType( + serialized_name="syncType", + ) + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_update.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_update.py new file mode 100644 index 00000000000..d6fbf1f65d0 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/_update.py @@ -0,0 +1,409 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control sync-job update", +) +class Update(AAZCommand): + """Update the sync job for a source control. + + :example: Update source control sync job properties + az automation source-control sync-job update -g rg --automation-account-name myAutomationAccount --source-control-name sourceControl --job-id abcdef01-2345-6789-9bed-a01234567890 --commit-id "" + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}/sourcecontrolsyncjobs/{}", "2023-11-01"], + ] + } + + 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=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["--source-control-name"], + help="The source control name.", + required=True, + id_part="child_name_1", + ) + _args_schema.source_control_sync_job_id = AAZUuidArg( + options=["-n", "--name", "--job-id", "--source-control-sync-job-id"], + help="The source control sync job id.", + required=True, + id_part="child_name_2", + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.commit_id = AAZStrArg( + options=["--commit-id"], + arg_group="Properties", + help="The commit id of the source control sync job. If not syncing to a commitId, enter an empty string.", + fmt=AAZStrArgFormat( + min_length=0, + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlSyncJobGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + self.SourceControlSyncJobCreate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SourceControlSyncJobGet(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}/sourceControls/{sourceControlName}/sourceControlSyncJobs/{sourceControlSyncJobId}", + **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( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "sourceControlSyncJobId", self.ctx.args.source_control_sync_job_id, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType() + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + + properties = cls._schema_on_200.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + flags={"read_only": True}, + ) + properties.end_time = AAZStrType( + serialized_name="endTime", + nullable=True, + flags={"read_only": True}, + ) + properties.exception = AAZStrType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source_control_sync_job_id = AAZStrType( + serialized_name="sourceControlSyncJobId", + ) + properties.start_time = AAZStrType( + serialized_name="startTime", + nullable=True, + flags={"read_only": True}, + ) + properties.sync_type = AAZStrType( + serialized_name="syncType", + ) + + return cls._schema_on_200 + + class SourceControlSyncJobCreate(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}/sourceControls/{sourceControlName}/sourceControlSyncJobs/{sourceControlSyncJobId}", + **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( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "sourceControlSyncJobId", self.ctx.args.source_control_sync_job_id, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_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.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_201.properties + properties.creation_time = AAZStrType( + serialized_name="creationTime", + flags={"read_only": True}, + ) + properties.end_time = AAZStrType( + serialized_name="endTime", + nullable=True, + flags={"read_only": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + properties.source_control_sync_job_id = AAZStrType( + serialized_name="sourceControlSyncJobId", + ) + properties.start_time = AAZStrType( + serialized_name="startTime", + nullable=True, + flags={"read_only": True}, + ) + properties.sync_type = AAZStrType( + serialized_name="syncType", + ) + + return cls._schema_on_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("commitId", AAZStrType, ".commit_id", typ_kwargs={"flags": {"required": True}}) + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + +__all__ = ["Update"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/__cmd_group.py new file mode 100644 index 00000000000..bdb564546d4 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/__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 source-control sync-job stream", +) +class __CMDGroup(AAZCommandGroup): + """Manage sync job stream. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/__init__.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/__init__.py new file mode 100644 index 00000000000..2df85698253 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/__init__.py @@ -0,0 +1,13 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._list import * +from ._show import * diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/_list.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/_list.py new file mode 100644 index 00000000000..77fbfacb6c4 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/_list.py @@ -0,0 +1,219 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control sync-job stream list", +) +class List(AAZCommand): + """List a list of sync job streams identified by sync job id. + + :example: List sync job streams + az automation source-control sync-job stream list -g rg --automation-account-name myAutomationAccount --source-control-name sourceControl --sync-job-id abcdef01-2345-6789-9bed-a01234567890 + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}/sourcecontrolsyncjobs/{}/streams", "2023-11-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["--source-control-name"], + help="The source control name.", + required=True, + ) + _args_schema.sync_job_id = AAZUuidArg( + options=["--sync-job-id"], + help="The source control sync job id.", + 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.pre_operations() + self.SourceControlSyncJobStreamsListBySyncJob(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class SourceControlSyncJobStreamsListBySyncJob(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}/sourceControls/{sourceControlName}/sourceControlSyncJobs/{sourceControlSyncJobId}/streams", + **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( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "sourceControlSyncJobId", self.ctx.args.sync_job_id, + 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", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + flags={"read_only": True}, + ) + _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.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.source_control_sync_job_stream_id = AAZStrType( + serialized_name="sourceControlSyncJobStreamId", + ) + properties.stream_type = AAZStrType( + serialized_name="streamType", + ) + properties.summary = AAZStrType() + properties.time = AAZStrType( + nullable=True, + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/_show.py b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/_show.py new file mode 100644 index 00000000000..0f7cff00543 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/source_control/sync_job/stream/_show.py @@ -0,0 +1,217 @@ +# -------------------------------------------------------------------------------------------- +# 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 source-control sync-job stream show", +) +class Show(AAZCommand): + """Get a sync job stream identified by stream id. + + :example: Show detail of sync job stream + az automation source-control sync-job stream show -g rg --automation-account-name myAutomationAccount --source-control-name sourceControl --sync-job-id abcdef01-2345-6789-9bed-a01234567890 --stream-id b86c5c31-e9fd-4734-8764-ddd6c101e706_00636596855139029522_00000000000000000007 + """ + + _aaz_info = { + "version": "2023-11-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/sourcecontrols/{}/sourcecontrolsyncjobs/{}/streams/{}", "2023-11-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.automation_account_name = AAZStrArg( + options=["--account", "--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.source_control_name = AAZStrArg( + options=["--source-control-name"], + help="The source control name.", + required=True, + id_part="child_name_1", + ) + _args_schema.sync_job_id = AAZUuidArg( + options=["--sync-job-id"], + help="The source control sync job id.", + required=True, + id_part="child_name_2", + ) + _args_schema.stream_id = AAZStrArg( + options=["--stream-id"], + help="The id of the sync job stream.", + required=True, + id_part="child_name_3", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SourceControlSyncJobStreamsGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SourceControlSyncJobStreamsGet(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}/sourceControls/{sourceControlName}/sourceControlSyncJobs/{sourceControlSyncJobId}/streams/{streamId}", + **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( + "sourceControlName", self.ctx.args.source_control_name, + required=True, + ), + **self.serialize_url_param( + "sourceControlSyncJobId", self.ctx.args.sync_job_id, + required=True, + ), + **self.serialize_url_param( + "streamId", self.ctx.args.stream_id, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-11-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + + properties = cls._schema_on_200.properties + properties.source_control_sync_job_stream_id = AAZStrType( + serialized_name="sourceControlSyncJobStreamId", + ) + properties.stream_text = AAZStrType( + serialized_name="streamText", + ) + properties.stream_type = AAZStrType( + serialized_name="streamType", + ) + properties.summary = AAZStrType() + properties.time = AAZStrType( + nullable=True, + flags={"read_only": True}, + ) + properties.value = AAZObjectType() + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/azext_metadata.json b/src/automation/azext_automation/azext_metadata.json index a3beef2a804..614a8179206 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.40.0" + "azext.minCliCoreVersion": "2.55.0" } \ No newline at end of file diff --git a/src/automation/azext_automation/manual/_params.py b/src/automation/azext_automation/manual/_params.py index ad39e38ce18..dc2e033077e 100644 --- a/src/automation/azext_automation/manual/_params.py +++ b/src/automation/azext_automation/manual/_params.py @@ -18,8 +18,7 @@ from azext_automation.action import ( AddPropertiesParameters, validator_duration ) -from azext_automation.vendored_sdks.automation.models import SkuNameEnum, RunbookTypeEnum, WindowsUpdateClasses, \ - OperatingSystemType +from azext_automation.vendored_sdks.automation.models import SkuNameEnum, RunbookTypeEnum, OperatingSystemType def load_arguments(self, _): diff --git a/src/automation/azext_automation/manual/action.py b/src/automation/azext_automation/manual/action.py index 4dd8520554f..21a49a3f49c 100644 --- a/src/automation/azext_automation/manual/action.py +++ b/src/automation/azext_automation/manual/action.py @@ -15,7 +15,7 @@ def __call__(self, parser, namespace, values, option_string=None): action = self.get_action(values, option_string) namespace.properties_parameters = action - def get_action(self, values, option_string): # pylint: disable=no-self-use + def get_action(self, values, option_string): try: properties = defaultdict(list) for (k, v) in (x.split('=', 1) for x in values): diff --git a/src/automation/azext_automation/manual/commands.py b/src/automation/azext_automation/manual/commands.py index 02180895054..df16b461f6b 100644 --- a/src/automation/azext_automation/manual/commands.py +++ b/src/automation/azext_automation/manual/commands.py @@ -11,7 +11,7 @@ def load_command_table(self, _): - from azext_automation.manual._client_factory import cf_runbook_draft, cf_job, cf_automation_account,\ + from azext_automation.manual._client_factory import cf_runbook_draft, cf_job, cf_automation_account, \ cf_schedule, cf_software_update_configuration, cf_software_update_configuration_runs, \ cf_software_update_configuration_machine_runs from azext_automation.generated._client_factory import cf_runbook 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 bf3f3e1cedc..f703ef49138 100644 --- a/src/automation/azext_automation/tests/latest/recordings/test_automation.yaml +++ b/src/automation/azext_automation/tests/latest/recordings/test_automation.yaml @@ -11,124 +11,438 @@ interactions: Connection: - keep-alive User-Agent: - - AZURECLI/2.45.0 azsdk-python-azure-mgmt-resource/21.1.0b1 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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/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\":[]}},{\"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/polandcentral\",\"name\":\"polandcentral\",\"displayName\":\"Poland - Central\",\"regionalDisplayName\":\"(Europe) Poland Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"21.01666\",\"latitude\":\"52.23334\",\"physicalLocation\":\"Warsaw\",\"pairedRegion\":[]}},{\"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\"}]}}]}" + 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.21837\",\"latitude\":\"-25.73134\",\"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.978\",\"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.373\",\"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/italynorth\"\ + ,\"name\":\"italynorth\",\"displayName\":\"Italy North\",\"regionalDisplayName\"\ + :\"(Europe) Italy North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"9.18109\",\"\ + latitude\":\"45.46888\",\"physicalLocation\":\"Milan\",\"pairedRegion\":[]}},{\"\ + 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/polandcentral\"\ + ,\"name\":\"polandcentral\",\"displayName\":\"Poland Central\",\"regionalDisplayName\"\ + :\"(Europe) Poland Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\"\ + :\"21.01666\",\"latitude\":\"52.23334\",\"physicalLocation\":\"Warsaw\",\"\ + pairedRegion\":[]}},{\"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/centraluseuap\"\ + ,\"name\":\"centraluseuap\",\"displayName\":\"Central US EUAP\",\"regionalDisplayName\"\ + :\"(US) Central US EUAP\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-93.6208\",\"latitude\"\ + :\"41.5908\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"name\":\"eastus2euap\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/israelcentral\"\ + ,\"name\":\"israelcentral\",\"displayName\":\"Israel Central\",\"regionalDisplayName\"\ + :\"(Middle East) Israel Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Middle East\",\"\ + longitude\":\"33.4506633\",\"latitude\":\"31.2655698\",\"physicalLocation\"\ + :\"Israel\",\"pairedRegion\":[]}},{\"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\":[]}},{\"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/sweden\"\ + ,\"name\":\"sweden\",\"displayName\":\"Sweden\",\"regionalDisplayName\":\"\ + Sweden\",\"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/brazilus\"\ + ,\"name\":\"brazilus\",\"displayName\":\"Brazil US\",\"regionalDisplayName\"\ + :\"(South America) Brazil US\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"South America\",\"longitude\"\ + :\"0\",\"latitude\":\"0\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"\ + name\":\"brazilsoutheast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast\"\ + }]}},{\"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/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/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/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/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\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"name\":\"centraluseuap\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap\"\ + }]}},{\"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/westcentralus\"\ + ,\"name\":\"westcentralus\",\"displayName\":\"West Central US\",\"regionalDisplayName\"\ + :\"(US) West Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-110.234\",\"latitude\"\ + :\"40.89\",\"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\":\"australiacentral2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2\"\ + }]}},{\"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\":\"australiacentral\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral\"\ + }]}},{\"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/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/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\"\ + }]}}]}" headers: cache-control: - no-cache content-length: - - '32589' + - '32116' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:10 GMT + - Mon, 15 Jan 2024 09:19:50 GMT expires: - '-1' pragma: @@ -161,21 +475,21 @@ interactions: ParameterSetName: - --resource-group --name --location User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2021-06-22 response: body: - string: '{"name":"test-account-000002","systemData":{"createdAt":"2023-02-24T06:28:14.8066667+00:00","lastModifiedAt":"2023-02-24T06:28:14.8066667+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.agentsvc.wus2.azure-automation.net/accounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.jrds.wus2.azure-automation.net/automationAccounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2023-02-24T06:28:14.8066667+00:00","lastModifiedBy":null,"lastModifiedTime":"2023-02-24T06:28:14.8066667+00:00"}}' + string: '{"name":"test-account-000002","systemData":{"createdAt":"2024-01-15T09:19:52.58+00:00","lastModifiedAt":"2024-01-15T09:19:52.58+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.agentsvc.wus2.azure-automation.net/accounts/333603da-d700-4be5-b947-c314c2d1bc56","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.jrds.wus2.azure-automation.net/automationAccounts/333603da-d700-4be5-b947-c314c2d1bc56","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-15T09:19:52.58+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T09:19:52.58+00:00"}}' headers: cache-control: - no-cache content-length: - - '1163' + - '1192' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:16 GMT + - Mon, 15 Jan 2024 09:19:53 GMT expires: - '-1' location: @@ -189,7 +503,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1199' status: code: 201 message: Created @@ -207,25 +521,25 @@ interactions: ParameterSetName: - --resource-group --name --tags User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2021-06-22 response: body: - string: '{"name":"test-account-000002","systemData":{"createdAt":"2023-02-24T06:28:14.8066667+00:00","lastModifiedAt":"2023-02-24T06:28:14.8066667+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.agentsvc.wus2.azure-automation.net/accounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"privateEndpointConnections":[],"automationHybridServiceUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.jrds.wus2.azure-automation.net/automationAccounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2023-02-24T06:28:14.8066667+00:00","lastModifiedBy":null,"lastModifiedTime":"2023-02-24T06:28:14.8066667+00:00"}}' + string: '{"name":"test-account-000002","systemData":{"createdAt":"2024-01-15T09:19:52.58+00:00","lastModifiedAt":"2024-01-15T09:19:52.58+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.agentsvc.wus2.azure-automation.net/accounts/333603da-d700-4be5-b947-c314c2d1bc56","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"privateEndpointConnections":[],"automationHybridServiceUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.jrds.wus2.azure-automation.net/automationAccounts/333603da-d700-4be5-b947-c314c2d1bc56","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-15T09:19:52.58+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T09:19:52.58+00:00"}}' headers: cache-control: - no-cache content-length: - - '1195' + - '1224' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:16 GMT + - Mon, 15 Jan 2024 09:19:54 GMT expires: - '-1' ocp-automation-accountid: - - f7c12ca2-f866-4f90-b926-3d26b9af91f6 + - 333603da-d700-4be5-b947-c314c2d1bc56 pragma: - no-cache server: @@ -260,21 +574,21 @@ interactions: ParameterSetName: - --resource-group --name --tags User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2021-06-22 response: body: - string: '{"name":"test-account-000002","systemData":{"createdAt":"2023-02-24T06:28:14.8066667+00:00","lastModifiedAt":"2023-02-24T06:28:18.3166667+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.agentsvc.wus2.azure-automation.net/accounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.jrds.wus2.azure-automation.net/automationAccounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2023-02-24T06:28:14.8066667+00:00","lastModifiedBy":null,"lastModifiedTime":"2023-02-24T06:28:18.3166667+00:00"}}' + string: '{"name":"test-account-000002","systemData":{"createdAt":"2024-01-15T09:19:52.58+00:00","lastModifiedAt":"2024-01-15T09:19:55.8033333+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.agentsvc.wus2.azure-automation.net/accounts/333603da-d700-4be5-b947-c314c2d1bc56","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.jrds.wus2.azure-automation.net/automationAccounts/333603da-d700-4be5-b947-c314c2d1bc56","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-15T09:19:52.58+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T09:19:55.8033333+00:00"}}' headers: cache-control: - no-cache content-length: - - '1170' + - '1209' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:19 GMT + - Mon, 15 Jan 2024 09:19:56 GMT expires: - '-1' pragma: @@ -290,7 +604,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1197' + - '1199' status: code: 200 message: OK @@ -308,25 +622,25 @@ interactions: ParameterSetName: - --resource-group --name User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2021-06-22 response: body: - string: '{"name":"test-account-000002","systemData":{"createdAt":"2023-02-24T06:28:14.8066667+00:00","lastModifiedAt":"2023-02-24T06:28:18.3166667+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.agentsvc.wus2.azure-automation.net/accounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"privateEndpointConnections":[],"automationHybridServiceUrl":"https://f7c12ca2-f866-4f90-b926-3d26b9af91f6.jrds.wus2.azure-automation.net/automationAccounts/f7c12ca2-f866-4f90-b926-3d26b9af91f6","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2023-02-24T06:28:14.8066667+00:00","lastModifiedBy":null,"lastModifiedTime":"2023-02-24T06:28:18.3166667+00:00"}}' + string: '{"name":"test-account-000002","systemData":{"createdAt":"2024-01-15T09:19:52.58+00:00","lastModifiedAt":"2024-01-15T09:19:55.8033333+00:00"},"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":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.agentsvc.wus2.azure-automation.net/accounts/333603da-d700-4be5-b947-c314c2d1bc56","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"privateEndpointConnections":[],"automationHybridServiceUrl":"https://333603da-d700-4be5-b947-c314c2d1bc56.jrds.wus2.azure-automation.net/automationAccounts/333603da-d700-4be5-b947-c314c2d1bc56","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-15T09:19:52.58+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T09:19:55.8033333+00:00"}}' headers: cache-control: - no-cache content-length: - - '1202' + - '1241' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:21 GMT + - Mon, 15 Jan 2024 09:19:59 GMT expires: - '-1' ocp-automation-accountid: - - f7c12ca2-f866-4f90-b926-3d26b9af91f6 + - 333603da-d700-4be5-b947-c314c2d1bc56 pragma: - no-cache server: @@ -356,21 +670,21 @@ interactions: ParameterSetName: - --resource-group User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2021-06-22 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":"2023-02-24T06:28:14.8066667+00:00","lastModifiedTime":"2023-02-24T06:28:18.3166667+00:00","state":"Ok","disableLocalAuth":false}}]}' + 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":"2024-01-15T09:19:52.58+00:00","lastModifiedTime":"2024-01-15T09:19:55.8033333+00:00","state":"Ok","disableLocalAuth":false}}]}' headers: cache-control: - no-cache content-length: - - '459' + - '454' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:21 GMT + - Mon, 15 Jan 2024 09:20:00 GMT expires: - '-1' pragma: @@ -396,130 +710,494 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - automation account list + - automation account list-keys Connection: - keep-alive + Content-Length: + - '0' ParameterSetName: - - --resource-group + - --resource-group --name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/listKeys?api-version=2023-11-01 + response: + body: + string: '{"keys":[{"KeyName":"Primary","Permissions":"Full","Value":"MockPrimaryKey"},{"KeyName":"Secondary","Permissions":"Full","Value":"MockSecondaryKey"}]}' + headers: + cache-control: + - no-cache + content-length: + - '296' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:20:02 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 + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation account list-keys + Connection: + - keep-alive + ParameterSetName: + - --resource-group --name User-Agent: - - AZURECLI/2.45.0 azsdk-python-azure-mgmt-resource/21.1.0b1 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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/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\":[]}},{\"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/polandcentral\",\"name\":\"polandcentral\",\"displayName\":\"Poland - Central\",\"regionalDisplayName\":\"(Europe) Poland Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"21.01666\",\"latitude\":\"52.23334\",\"physicalLocation\":\"Warsaw\",\"pairedRegion\":[]}},{\"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\"}]}}]}" + 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.21837\",\"latitude\":\"-25.73134\",\"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.978\",\"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.373\",\"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/italynorth\"\ + ,\"name\":\"italynorth\",\"displayName\":\"Italy North\",\"regionalDisplayName\"\ + :\"(Europe) Italy North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"9.18109\",\"\ + latitude\":\"45.46888\",\"physicalLocation\":\"Milan\",\"pairedRegion\":[]}},{\"\ + 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/polandcentral\"\ + ,\"name\":\"polandcentral\",\"displayName\":\"Poland Central\",\"regionalDisplayName\"\ + :\"(Europe) Poland Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\"\ + :\"21.01666\",\"latitude\":\"52.23334\",\"physicalLocation\":\"Warsaw\",\"\ + pairedRegion\":[]}},{\"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/centraluseuap\"\ + ,\"name\":\"centraluseuap\",\"displayName\":\"Central US EUAP\",\"regionalDisplayName\"\ + :\"(US) Central US EUAP\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-93.6208\",\"latitude\"\ + :\"41.5908\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"name\":\"eastus2euap\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/israelcentral\"\ + ,\"name\":\"israelcentral\",\"displayName\":\"Israel Central\",\"regionalDisplayName\"\ + :\"(Middle East) Israel Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Middle East\",\"\ + longitude\":\"33.4506633\",\"latitude\":\"31.2655698\",\"physicalLocation\"\ + :\"Israel\",\"pairedRegion\":[]}},{\"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\":[]}},{\"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/sweden\"\ + ,\"name\":\"sweden\",\"displayName\":\"Sweden\",\"regionalDisplayName\":\"\ + Sweden\",\"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/brazilus\"\ + ,\"name\":\"brazilus\",\"displayName\":\"Brazil US\",\"regionalDisplayName\"\ + :\"(South America) Brazil US\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"South America\",\"longitude\"\ + :\"0\",\"latitude\":\"0\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"\ + name\":\"brazilsoutheast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast\"\ + }]}},{\"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/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/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/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/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\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"name\":\"centraluseuap\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap\"\ + }]}},{\"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/westcentralus\"\ + ,\"name\":\"westcentralus\",\"displayName\":\"West Central US\",\"regionalDisplayName\"\ + :\"(US) West Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-110.234\",\"latitude\"\ + :\"40.89\",\"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\":\"australiacentral2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2\"\ + }]}},{\"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\":\"australiacentral\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral\"\ + }]}},{\"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/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/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\"\ + }]}}]}" headers: cache-control: - no-cache content-length: - - '32589' + - '32116' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:23 GMT + - Mon, 15 Jan 2024 09:20:03 GMT expires: - '-1' pragma: @@ -552,12 +1230,12 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name --type --location User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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":"\"638128169073600000\"","properties":{"description":null,"logVerbose":false,"logProgress":false,"logActivityTrace":0,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2023-02-24T06:28:27.36+00:00","lastModifiedBy":null,"lastModifiedTime":"2023-02-24T06:28:27.36+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":"\"638409072071300000\"","properties":{"description":null,"logVerbose":false,"logProgress":false,"logActivityTrace":0,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2024-01-15T09:20:07.13+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T09:20:07.13+00:00"}}' headers: cache-control: - no-cache @@ -566,9 +1244,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:27 GMT + - Mon, 15 Jan 2024 09:20:06 GMT etag: - - '"638128169073600000"' + - '"638409072071300000"' expires: - '-1' location: @@ -582,7 +1260,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1199' status: code: 201 message: Created @@ -606,23 +1284,23 @@ interactions: - --resource-group --automation-account-name --name --log-activity-trace --log-verbose --log-progress User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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":"\"638128169096233333\"","properties":{"description":null,"logVerbose":true,"logProgress":true,"logActivityTrace":1,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2023-02-24T06:28:27.36+00:00","lastModifiedBy":"{scrubbed}","lastModifiedTime":"2023-02-24T06:28:29.6233333+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":"\"638409072090000000\"","properties":{"description":null,"logVerbose":true,"logProgress":true,"logActivityTrace":1,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2024-01-15T09:20:07.13+00:00","lastModifiedBy":"{scrubbed}","lastModifiedTime":"2024-01-15T09:20:09+00:00"}}' headers: cache-control: - no-cache content-length: - - '722' + - '714' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:28 GMT + - Mon, 15 Jan 2024 09:20:09 GMT etag: - - '"638128169096233333"' + - '"638409072090000000"' expires: - '-1' pragma: @@ -642,86 +1320,35 @@ interactions: status: code: 200 message: OK -- request: - body: '@C:UserszelinwangAppDataLocalTempPowerShell.ps' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - automation runbook replace-content - Connection: - - keep-alive - Content-Length: - - '46' - Content-Type: - - text/powershell - ParameterSetName: - - --resource-group --automation-account-name --name --content - User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-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: - body: - string: '' - headers: - cache-control: - - no-cache - content-length: - - '0' - date: - - Fri, 24 Feb 2023 06:28:30 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/operationResults/14fee2d3-a902-4232-be04-40a943406c55?api-version=2018-06-30 - ocp-automation-operationresultid: - - 14fee2d3-a902-4232-be04-40a943406c55 - - 14fee2d3-a902-4232-be04-40a943406c55 - 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: - - '1199' - status: - code: 202 - message: Accepted - request: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - gzip, deflate CommandName: - - automation runbook replace-content + - automation account show-linked-workspace Connection: - keep-alive ParameterSetName: - - --resource-group --automation-account-name --name --content + - --resource-group --name User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/operationResults/14fee2d3-a902-4232-be04-40a943406c55?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/linkedWorkspace?api-version=2023-11-01 response: body: - string: '' + string: '{"id":null}' headers: cache-control: - no-cache content-length: - - '0' + - '11' content-type: - - text/plain; charset=utf-8 + - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:36 GMT + - Mon, 15 Jan 2024 09:20:10 GMT expires: - '-1' pragma: @@ -730,30 +1357,36 @@ interactions: - 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 + body: '@C:UsersqinkaiwuAppDataLocalTempPowerShell.ps' headers: Accept: - application/json Accept-Encoding: - gzip, deflate CommandName: - - automation runbook publish + - automation runbook replace-content Connection: - keep-alive Content-Length: - - '0' + - '45' + Content-Type: + - text/powershell ParameterSetName: - - --resource-group --automation-account-name --name + - --resource-group --automation-account-name --name --content User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-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 + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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: body: string: '' @@ -763,14 +1396,14 @@ interactions: content-length: - '0' date: - - Fri, 24 Feb 2023 06:28:39 GMT + - Mon, 15 Jan 2024 09:20: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/operationResults/80586083-594b-462b-a218-70b7bbd30535?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/865fbd54-62d1-4321-a3bf-52f6ec0d02cc?api-version=2018-06-30&t=638409072128547149&c=MIIHHjCCBgagAwIBAgITOgI9LlF5jGEEQe1CmgAEAj0uUTANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSU5GUkEgQ0EgMDEwHhcNMjMxMTAxMjE0OTQ5WhcNMjQxMDI2MjE0OTQ5WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMKt_zl2yRFDxIUmqoEA-B7WoRkSqscgwk6CGqDbwEVJS3oTI4Gk-ukQ6El3GQJVthiuwZGw4jwvTDyVWC8mQH2Zni6X1ocTXrNNa6VFJnvzeEn-HpmPATuII8AWtdtUnBvGZGAwgspvH8iZZCiHDowHCWhjVsU6_ipCsmzQeH3oRJI4AwUS_nCVA7U9WPdgIyQp6v5QPzcYCO_zIbNW4y_Cc3phfPEQvPvtSKhuijt68F5WlUY6Ps23ksosYG5VTx7z6skGG9arA5UKUzbbEO8lxzda3OFPZdG7OHe8-VMXxJjtSanZSSbdLgYBRB9m9PGr6voKtML9W5rEukE-lEUCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CWTJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSU5GUkElMjBDQSUyMDAxKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MB0GA1UdDgQWBBRYUmiD-EjeFFNZByiKICN9p1JofzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTl2Ztn_PjsurvwwKidileIud8-YzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAKRwStAdrsy7tgEfmtXPZXIwgdXOYwSx2Kqzlhq8b6Ptid4V3vhJvDV0WLS7d72KIMUwZiBnfPHhMmsdkLOSpNSZYC23g3QJSBWvoS86Rpkeru5bEyQmv1gucF_MyaFaUXUd4b7xnvCkv-BBNO8m1lvFAowB2odz9esggf82yeOVBx0yEK_NNOK4l36XvRjvIqemSLZOSi1wow_wn_ovhAEPpSSN7UTahPtz7J12vhP1LuZ4Rvn_hNx48ncw445nMBnMVmcuuakaKDC6_sAcs5lg9jq2yHSaIHRw4xcoS5XwvIykGPMUyAD-dXWFih_XFOKh7ea50hObFhghf3Dtvlo&s=otOZzzh_T9BOdBsNQjCZWweazgOZ_MnBUd5G0-_ooX4bLOl7QRAoGmiBgIfC2hEp-Xc6_mdAsSTsOdJoq5M7opwUQI7uwh-wQRFmqGuYT8YQj3x7iyBRzecTN9nQE5r4R_0TOAKXcQNaGqRW96tICKnbtfM2LWoeHjJUyNYemrxNM-tMedZMUFuUu5J687GgPKTsivUKfQhu_5gxebB2vzxeKOhu1Vf8JkCzbyy3AeDIgmoZrrD6iBzXTsNQbqafwFquvvkPMet17PES0olZyFn9o30CM8cfz6slzb2C_25fTgRfXDjK0ohvRCDbTcRUhGBf7R8gC460gxd-og1Tww&h=QlxfeerIrqv7-aRvkgTaZOV6V1j8sp7UJj7w6Qu6pBo ocp-automation-operationresultid: - - 80586083-594b-462b-a218-70b7bbd30535 - - 80586083-594b-462b-a218-70b7bbd30535 + - 865fbd54-62d1-4321-a3bf-52f6ec0d02cc + - 865fbd54-62d1-4321-a3bf-52f6ec0d02cc pragma: - no-cache server: @@ -792,15 +1425,15 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - automation runbook publish + - automation runbook replace-content Connection: - keep-alive ParameterSetName: - - --resource-group --automation-account-name --name + - --resource-group --automation-account-name --name --content User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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/operationResults/80586083-594b-462b-a218-70b7bbd30535?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/865fbd54-62d1-4321-a3bf-52f6ec0d02cc?api-version=2018-06-30&t=638409072128547149&c=MIIHHjCCBgagAwIBAgITOgI9LlF5jGEEQe1CmgAEAj0uUTANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSU5GUkEgQ0EgMDEwHhcNMjMxMTAxMjE0OTQ5WhcNMjQxMDI2MjE0OTQ5WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMKt_zl2yRFDxIUmqoEA-B7WoRkSqscgwk6CGqDbwEVJS3oTI4Gk-ukQ6El3GQJVthiuwZGw4jwvTDyVWC8mQH2Zni6X1ocTXrNNa6VFJnvzeEn-HpmPATuII8AWtdtUnBvGZGAwgspvH8iZZCiHDowHCWhjVsU6_ipCsmzQeH3oRJI4AwUS_nCVA7U9WPdgIyQp6v5QPzcYCO_zIbNW4y_Cc3phfPEQvPvtSKhuijt68F5WlUY6Ps23ksosYG5VTx7z6skGG9arA5UKUzbbEO8lxzda3OFPZdG7OHe8-VMXxJjtSanZSSbdLgYBRB9m9PGr6voKtML9W5rEukE-lEUCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CWTJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSU5GUkElMjBDQSUyMDAxKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MB0GA1UdDgQWBBRYUmiD-EjeFFNZByiKICN9p1JofzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTl2Ztn_PjsurvwwKidileIud8-YzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAKRwStAdrsy7tgEfmtXPZXIwgdXOYwSx2Kqzlhq8b6Ptid4V3vhJvDV0WLS7d72KIMUwZiBnfPHhMmsdkLOSpNSZYC23g3QJSBWvoS86Rpkeru5bEyQmv1gucF_MyaFaUXUd4b7xnvCkv-BBNO8m1lvFAowB2odz9esggf82yeOVBx0yEK_NNOK4l36XvRjvIqemSLZOSi1wow_wn_ovhAEPpSSN7UTahPtz7J12vhP1LuZ4Rvn_hNx48ncw445nMBnMVmcuuakaKDC6_sAcs5lg9jq2yHSaIHRw4xcoS5XwvIykGPMUyAD-dXWFih_XFOKh7ea50hObFhghf3Dtvlo&s=otOZzzh_T9BOdBsNQjCZWweazgOZ_MnBUd5G0-_ooX4bLOl7QRAoGmiBgIfC2hEp-Xc6_mdAsSTsOdJoq5M7opwUQI7uwh-wQRFmqGuYT8YQj3x7iyBRzecTN9nQE5r4R_0TOAKXcQNaGqRW96tICKnbtfM2LWoeHjJUyNYemrxNM-tMedZMUFuUu5J687GgPKTsivUKfQhu_5gxebB2vzxeKOhu1Vf8JkCzbyy3AeDIgmoZrrD6iBzXTsNQbqafwFquvvkPMet17PES0olZyFn9o30CM8cfz6slzb2C_25fTgRfXDjK0ohvRCDbTcRUhGBf7R8gC460gxd-og1Tww&h=QlxfeerIrqv7-aRvkgTaZOV6V1j8sp7UJj7w6Qu6pBo response: body: string: '' @@ -812,7 +1445,7 @@ interactions: content-type: - text/plain; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:44 GMT + - Mon, 15 Jan 2024 09:20:13 GMT expires: - '-1' pragma: @@ -827,264 +1460,71 @@ interactions: code: 200 message: OK - request: - body: '{"name": "hwg-000004"}' + body: null headers: Accept: - application/json Accept-Encoding: - gzip, deflate CommandName: - - automation hrwg create + - automation runbook publish Connection: - keep-alive Content-Length: - - '22' - Content-Type: - - application/json + - '0' ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-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-08-08 + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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: 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":"2023-02-24T06:28:46.2213871+00:00","lastModifiedAt":"2023-02-24T06:28:46.2213871+00:00"}}' + string: '' headers: cache-control: - no-cache content-length: - - '509' - content-type: - - application/json; charset=utf-8 + - '0' date: - - Fri, 24 Feb 2023 06:28:45 GMT + - Mon, 15 Jan 2024 09:20:15 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-08-08 - 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: '{"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.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-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-08-08 - 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":"2023-02-24T06:28:46.2213871+00:00","lastModifiedAt":"2023-02-24T06:28:47.3464859+00:00"}}' - headers: - cache-control: - - no-cache - content-length: - - '509' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 24 Feb 2023 06:28:47 GMT - expires: - - '-1' + - 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/989b9531-cc97-41b9-a6e7-e565b40ffe2e?api-version=2018-06-30&t=638409072159472894&c=MIIHHjCCBgagAwIBAgITOgI9LlF5jGEEQe1CmgAEAj0uUTANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSU5GUkEgQ0EgMDEwHhcNMjMxMTAxMjE0OTQ5WhcNMjQxMDI2MjE0OTQ5WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMKt_zl2yRFDxIUmqoEA-B7WoRkSqscgwk6CGqDbwEVJS3oTI4Gk-ukQ6El3GQJVthiuwZGw4jwvTDyVWC8mQH2Zni6X1ocTXrNNa6VFJnvzeEn-HpmPATuII8AWtdtUnBvGZGAwgspvH8iZZCiHDowHCWhjVsU6_ipCsmzQeH3oRJI4AwUS_nCVA7U9WPdgIyQp6v5QPzcYCO_zIbNW4y_Cc3phfPEQvPvtSKhuijt68F5WlUY6Ps23ksosYG5VTx7z6skGG9arA5UKUzbbEO8lxzda3OFPZdG7OHe8-VMXxJjtSanZSSbdLgYBRB9m9PGr6voKtML9W5rEukE-lEUCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CWTJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSU5GUkElMjBDQSUyMDAxKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MB0GA1UdDgQWBBRYUmiD-EjeFFNZByiKICN9p1JofzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTl2Ztn_PjsurvwwKidileIud8-YzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAKRwStAdrsy7tgEfmtXPZXIwgdXOYwSx2Kqzlhq8b6Ptid4V3vhJvDV0WLS7d72KIMUwZiBnfPHhMmsdkLOSpNSZYC23g3QJSBWvoS86Rpkeru5bEyQmv1gucF_MyaFaUXUd4b7xnvCkv-BBNO8m1lvFAowB2odz9esggf82yeOVBx0yEK_NNOK4l36XvRjvIqemSLZOSi1wow_wn_ovhAEPpSSN7UTahPtz7J12vhP1LuZ4Rvn_hNx48ncw445nMBnMVmcuuakaKDC6_sAcs5lg9jq2yHSaIHRw4xcoS5XwvIykGPMUyAD-dXWFih_XFOKh7ea50hObFhghf3Dtvlo&s=BmocCt2PC51FNVndULrnFzUSkCk3k2bYHWPvrTym9gxCRiisD7c93G-LNviBabCxvr-mY0kGSs2uv5ELAQV9NFQ5i_qV-l-klNRkYVf-c_SEAi82OzJ5R7QbhkDUzP4KowFGBDQEMgQPkcYdH1NaqCFz2M_---ac3WjvSAs-S7_Plo76XOH5iuKrvCNqqKxOUlCvs2_pUSZesCGbCFq8FlWZ61C16Px8MO4sjxLQjbB0U73r58eHUPHkhLLjPqbchQZ6AITasw-hQ3wmMaroOJ0IjznL9Ueq2TJmmMuQSvKADJ2EynxzIXTwJPOXOLS-707Za-i6XvOwitTuSgAkfw&h=JKJkzJex-xxIj3Vj8j4bg5AKahispaREHvXf6TwdesA + ocp-automation-operationresultid: + - 989b9531-cc97-41b9-a6e7-e565b40ffe2e + - 989b9531-cc97-41b9-a6e7-e565b40ffe2e 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 x-ms-ratelimit-remaining-subscription-writes: - - '1198' + - '1199' status: - code: 200 - message: OK + code: 202 + message: Accepted - request: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - automation hrwg show + - automation runbook publish Connection: - keep-alive ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-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-08-08 - 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":"2023-02-24T06:28:46.2213871+00:00","lastModifiedAt":"2023-02-24T06:28:47.3464859+00:00"}}' - headers: - cache-control: - - no-cache - content-length: - - '509' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 24 Feb 2023 06:28:48 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 list - Connection: - - keep-alive - ParameterSetName: - - --resource-group --automation-account-name - User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-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-08-08 - 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":"2023-02-24T06:28:46.2213871+00:00","lastModifiedAt":"2023-02-24T06:28:47.3464859+00:00"}}]}' - headers: - cache-control: - - no-cache - content-length: - - '521' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 24 Feb 2023 06:28:49 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.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2022-08-08 - response: - body: - string: '{"value":[]}' - headers: - cache-control: - - no-cache - content-length: - - '12' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 24 Feb 2023 06:28:50 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.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-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-08-08 + 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/989b9531-cc97-41b9-a6e7-e565b40ffe2e?api-version=2018-06-30&t=638409072159472894&c=MIIHHjCCBgagAwIBAgITOgI9LlF5jGEEQe1CmgAEAj0uUTANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSU5GUkEgQ0EgMDEwHhcNMjMxMTAxMjE0OTQ5WhcNMjQxMDI2MjE0OTQ5WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMKt_zl2yRFDxIUmqoEA-B7WoRkSqscgwk6CGqDbwEVJS3oTI4Gk-ukQ6El3GQJVthiuwZGw4jwvTDyVWC8mQH2Zni6X1ocTXrNNa6VFJnvzeEn-HpmPATuII8AWtdtUnBvGZGAwgspvH8iZZCiHDowHCWhjVsU6_ipCsmzQeH3oRJI4AwUS_nCVA7U9WPdgIyQp6v5QPzcYCO_zIbNW4y_Cc3phfPEQvPvtSKhuijt68F5WlUY6Ps23ksosYG5VTx7z6skGG9arA5UKUzbbEO8lxzda3OFPZdG7OHe8-VMXxJjtSanZSSbdLgYBRB9m9PGr6voKtML9W5rEukE-lEUCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CWTJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSU5GUkElMjBDQSUyMDAxKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQlkyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMElORlJBJTIwQ0ElMjAwMSg0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JZMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3J0MB0GA1UdDgQWBBRYUmiD-EjeFFNZByiKICN9p1JofzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJTkZSQSUyMENBJTIwMDEoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTl2Ztn_PjsurvwwKidileIud8-YzAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAKRwStAdrsy7tgEfmtXPZXIwgdXOYwSx2Kqzlhq8b6Ptid4V3vhJvDV0WLS7d72KIMUwZiBnfPHhMmsdkLOSpNSZYC23g3QJSBWvoS86Rpkeru5bEyQmv1gucF_MyaFaUXUd4b7xnvCkv-BBNO8m1lvFAowB2odz9esggf82yeOVBx0yEK_NNOK4l36XvRjvIqemSLZOSi1wow_wn_ovhAEPpSSN7UTahPtz7J12vhP1LuZ4Rvn_hNx48ncw445nMBnMVmcuuakaKDC6_sAcs5lg9jq2yHSaIHRw4xcoS5XwvIykGPMUyAD-dXWFih_XFOKh7ea50hObFhghf3Dtvlo&s=BmocCt2PC51FNVndULrnFzUSkCk3k2bYHWPvrTym9gxCRiisD7c93G-LNviBabCxvr-mY0kGSs2uv5ELAQV9NFQ5i_qV-l-klNRkYVf-c_SEAi82OzJ5R7QbhkDUzP4KowFGBDQEMgQPkcYdH1NaqCFz2M_---ac3WjvSAs-S7_Plo76XOH5iuKrvCNqqKxOUlCvs2_pUSZesCGbCFq8FlWZ61C16Px8MO4sjxLQjbB0U73r58eHUPHkhLLjPqbchQZ6AITasw-hQ3wmMaroOJ0IjznL9Ueq2TJmmMuQSvKADJ2EynxzIXTwJPOXOLS-707Za-i6XvOwitTuSgAkfw&h=JKJkzJex-xxIj3Vj8j4bg5AKahispaREHvXf6TwdesA response: body: string: '' @@ -1093,8 +1533,10 @@ interactions: - no-cache content-length: - '0' + content-type: + - text/plain; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:51 GMT + - Mon, 15 Jan 2024 09:20:15 GMT expires: - '-1' pragma: @@ -1105,8 +1547,6 @@ interactions: - max-age=31536000; includeSubDomains x-content-type-options: - nosniff - x-ms-ratelimit-remaining-subscription-deletes: - - '14999' status: code: 200 message: OK @@ -1128,25 +1568,25 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name --content-link User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/python3Packages/py3-package-000005?api-version=2022-08-08 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004?api-version=2022-08-08 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000005","name":"py3-package-000005","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2023-02-24T06:28:53.8033333+00:00","lastModifiedTime":"2023-02-24T06:28:53.9033333+00:00","error":{"code":null,"message":null},"provisioningState":"Creating","isComposite":false}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004","name":"py3-package-000004","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2024-01-15T09:20:18.05+00:00","lastModifiedTime":"2024-01-15T09:20:18.1066667+00:00","error":{"code":null,"message":null},"provisioningState":"Creating","isComposite":false}}' headers: cache-control: - no-cache content-length: - - '618' + - '613' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:53 GMT + - Mon, 15 Jan 2024 09:20:17 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/python3Packages/py3-package-000005?api-version=2022-08-08 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004?api-version=2022-08-08 pragma: - no-cache server: @@ -1156,7 +1596,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1199' + - '1198' status: code: 201 message: Created @@ -1174,21 +1614,21 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name --content-link User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/python3Packages/py3-package-000005?api-version=2022-08-08 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004?api-version=2022-08-08 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000005","name":"py3-package-000005","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2023-02-24T06:28:53.8033333+00:00","lastModifiedTime":"2023-02-24T06:28:53.9033333+00:00","error":{"code":null,"message":""},"provisioningState":"Creating","isComposite":false}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004","name":"py3-package-000004","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2024-01-15T09:20:18.05+00:00","lastModifiedTime":"2024-01-15T09:20:18.1066667+00:00","error":{"code":null,"message":""},"provisioningState":"Creating","isComposite":false}}' headers: cache-control: - no-cache content-length: - - '616' + - '611' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:54 GMT + - Mon, 15 Jan 2024 09:20:19 GMT expires: - '-1' pragma: @@ -1209,8 +1649,8 @@ interactions: - request: body: '{"location": "westus2", "properties": {"activityCount": 0, "contentLink": {"uri": "https://files.pythonhosted.org/packages/7f/e2/85dfb9f7364cbd7a9213caea0e91fc948da3c912a2b222a3e43bc9cc6432/requires.io-0.2.6-py2.py3-none-any.whl"}, - "creationTime": "2023-02-24T06:28:53.8033333+00:00", "error": {"message": ""}, - "isComposite": false, "isGlobal": false, "lastModifiedTime": "2023-02-24T06:28:53.9033333+00:00", + "creationTime": "2024-01-15T09:20:18.05+00:00", "error": {"message": ""}, "isComposite": + false, "isGlobal": false, "lastModifiedTime": "2024-01-15T09:20:18.1066667+00:00", "provisioningState": "Creating", "sizeInBytes": 0}, "tags": {}}' headers: Accept: @@ -1222,18 +1662,18 @@ interactions: Connection: - keep-alive Content-Length: - - '472' + - '467' Content-Type: - application/json ParameterSetName: - --resource-group --automation-account-name --name --content-link User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/python3Packages/py3-package-000005?api-version=2022-08-08 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004?api-version=2022-08-08 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000005","name":"py3-package-000005","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2023-02-24T06:28:53.8033333+00:00","lastModifiedTime":"2023-02-24T06:28:55.92+00:00","error":{"code":null,"message":null},"provisioningState":"Creating","isComposite":false}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004","name":"py3-package-000004","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2024-01-15T09:20:18.05+00:00","lastModifiedTime":"2024-01-15T09:20:20.6566667+00:00","error":{"code":null,"message":null},"provisioningState":"Creating","isComposite":false}}' headers: cache-control: - no-cache @@ -1242,7 +1682,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:55 GMT + - Mon, 15 Jan 2024 09:20:20 GMT expires: - '-1' pragma: @@ -1276,12 +1716,12 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/python3Packages/py3-package-000005?api-version=2022-08-08 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004?api-version=2022-08-08 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000005","name":"py3-package-000005","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2023-02-24T06:28:53.8033333+00:00","lastModifiedTime":"2023-02-24T06:28:55.92+00:00","error":{"code":null,"message":""},"provisioningState":"Creating","isComposite":false}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004","name":"py3-package-000004","type":"Microsoft.Automation/AutomationAccounts/Python3Packages","location":"westus2","tags":{},"etag":null,"properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2024-01-15T09:20:18.05+00:00","lastModifiedTime":"2024-01-15T09:20:20.6566667+00:00","error":{"code":null,"message":""},"provisioningState":"Creating","isComposite":false}}' headers: cache-control: - no-cache @@ -1290,7 +1730,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:57 GMT + - Mon, 15 Jan 2024 09:20:21 GMT expires: - '-1' pragma: @@ -1322,12 +1762,12 @@ interactions: ParameterSetName: - --resource-group --automation-account-name User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/python3Packages?api-version=2022-08-08 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000005","name":"py3-package-000005","properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2023-02-24T06:28:53.8033333+00:00","lastModifiedTime":"2023-02-24T06:28:55.92+00:00","provisioningState":"Creating","isComposite":false}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004","name":"py3-package-000004","properties":{"isGlobal":false,"version":null,"sizeInBytes":0,"activityCount":0,"creationTime":"2024-01-15T09:20:18.05+00:00","lastModifiedTime":"2024-01-15T09:20:20.6566667+00:00","provisioningState":"Creating","isComposite":false}}]}' headers: cache-control: - no-cache @@ -1336,7 +1776,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:28:58 GMT + - Mon, 15 Jan 2024 09:20:23 GMT expires: - '-1' pragma: @@ -1370,9 +1810,9 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name --yes User-Agent: - - AZURECLI/2.45.0 (AAZ) azsdk-python-core/1.24.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-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/python3Packages/py3-package-000005?api-version=2022-08-08 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/python3Packages/py3-package-000004?api-version=2022-08-08 response: body: string: '' @@ -1382,7 +1822,7 @@ interactions: content-length: - '0' date: - - Fri, 24 Feb 2023 06:28:59 GMT + - Mon, 15 Jan 2024 09:20:25 GMT expires: - '-1' pragma: @@ -1416,21 +1856,21 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2019-06-01 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":"ac0e48d6-a935-481a-8b84-e3708da9c5db","creationTime":"2023-02-24T06:29:00.85+00:00","provisioningState":"Processing","status":"New","statusDetails":"None","startedBy":null,"startTime":null,"endTime":null,"lastModifiedTime":"2023-02-24T06:29:00.85+00:00","lastStatusModifiedTime":"2023-02-24T06:29:00.85+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":"74d0b67f-cdd6-4623-bb89-1e8cdc5b006a","creationTime":"2024-01-15T09:20:27.4833333+00:00","provisioningState":"Processing","status":"New","statusDetails":"None","startedBy":null,"startTime":null,"endTime":null,"lastModifiedTime":"2024-01-15T09:20:27.4833333+00:00","lastStatusModifiedTime":"2024-01-15T09:20:27.4833333+00:00","exception":null,"parameters":{},"runOn":null,"runbook":{"name":"test-runbook-000003"}}}' headers: cache-control: - no-cache content-length: - - '735' + - '750' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:29:00 GMT + - Mon, 15 Jan 2024 09:20:27 GMT expires: - '-1' location: @@ -1462,21 +1902,21 @@ interactions: ParameterSetName: - --resource-group --automation-account-name User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2019-06-01 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":"ac0e48d6-a935-481a-8b84-e3708da9c5db","runbook":{"name":"test-runbook-000003"},"provisioningState":"Processing","status":"New","creationTime":"2023-02-24T06:29:00.85388+00:00","startTime":null,"lastModifiedTime":"2023-02-24T06:29:00.85388+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":"74d0b67f-cdd6-4623-bb89-1e8cdc5b006a","runbook":{"name":"test-runbook-000003"},"provisioningState":"Processing","status":"New","creationTime":"2024-01-15T09:20:27.4947817+00:00","startTime":null,"lastModifiedTime":"2024-01-15T09:20:27.4947817+00:00","endTime":null,"runOn":null}}]}' headers: cache-control: - no-cache content-length: - - '624' + - '628' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:29:01 GMT + - Mon, 15 Jan 2024 09:20:28 GMT expires: - '-1' pragma: @@ -1510,21 +1950,21 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2019-06-01 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":"ac0e48d6-a935-481a-8b84-e3708da9c5db","creationTime":"2023-02-24T06:29:00.85388+00:00","provisioningState":"Processing","status":"New","statusDetails":"None","startedBy":"{scrubbed}","startTime":null,"endTime":null,"lastModifiedTime":"2023-02-24T06:29:00.85388+00:00","lastStatusModifiedTime":"2023-02-24T06:29:00.85388+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":"74d0b67f-cdd6-4623-bb89-1e8cdc5b006a","creationTime":"2024-01-15T09:20:27.4947817+00:00","provisioningState":"Processing","status":"New","statusDetails":"None","startedBy":"{scrubbed}","startTime":null,"endTime":null,"lastModifiedTime":"2024-01-15T09:20:27.4947817+00:00","lastStatusModifiedTime":"2024-01-15T09:20:27.4947817+00:00","exception":null,"parameters":{},"runOn":null,"runbook":{"name":"test-runbook-000003"}}}' headers: cache-control: - no-cache content-length: - - '752' + - '758' content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:29:03 GMT + - Mon, 15 Jan 2024 09:20:30 GMT expires: - '-1' pragma: @@ -1558,12 +1998,12 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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?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":"\"638128169192900000\"","properties":{"description":null,"logVerbose":true,"logProgress":true,"logActivityTrace":1,"runbookType":"PowerShell","parameters":{},"state":"Published","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2023-02-24T06:28:27.36+00:00","lastModifiedBy":null,"lastModifiedTime":"2023-02-24T06:28:39.29+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":"\"638409072157800000\"","properties":{"description":null,"logVerbose":true,"logProgress":true,"logActivityTrace":1,"runbookType":"PowerShell","parameters":{},"state":"Published","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2024-01-15T09:20:07.13+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T09:20:15.78+00:00"}}' headers: cache-control: - no-cache @@ -1572,9 +2012,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:29:04 GMT + - Mon, 15 Jan 2024 09:20:32 GMT etag: - - '"638128169192900000"' + - '"638409072157800000"' expires: - '-1' pragma: @@ -1606,12 +2046,12 @@ interactions: ParameterSetName: - --resource-group --automation-account-name User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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?api-version=2018-06-30 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003","location":"westus2","name":"test-runbook-000003","type":"Microsoft.Automation/AutomationAccounts/Runbooks","tags":{},"properties":{"runbookType":"PowerShell","state":"Published","logVerbose":true,"logProgress":true,"logActivityTrace":1,"creationTime":"2023-02-24T06:28:27.36+00:00","lastModifiedTime":"2023-02-24T06:28:39.29+00:00"}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003","location":"westus2","name":"test-runbook-000003","type":"Microsoft.Automation/AutomationAccounts/Runbooks","tags":{},"properties":{"runbookType":"PowerShell","state":"Published","logVerbose":true,"logProgress":true,"logActivityTrace":1,"creationTime":"2024-01-15T09:20:07.13+00:00","lastModifiedTime":"2024-01-15T09:20:15.78+00:00"}}]}' headers: cache-control: - no-cache @@ -1620,7 +2060,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 24 Feb 2023 06:29:05 GMT + - Mon, 15 Jan 2024 09:20:32 GMT expires: - '-1' pragma: @@ -1654,7 +2094,7 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name -y User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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/runbooks/test-runbook-000003?api-version=2018-06-30 response: @@ -1666,7 +2106,7 @@ interactions: content-length: - '0' date: - - Fri, 24 Feb 2023 06:29:09 GMT + - Mon, 15 Jan 2024 09:20:36 GMT expires: - '-1' pragma: @@ -1698,7 +2138,7 @@ interactions: ParameterSetName: - --resource-group --name -y User-Agent: - - AZURECLI/2.45.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.9.5 (Windows-10-10.0.19045-SP0) + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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=2021-06-22 response: @@ -1710,7 +2150,7 @@ interactions: content-length: - '0' date: - - Fri, 24 Feb 2023 06:29:18 GMT + - Mon, 15 Jan 2024 09:20:44 GMT expires: - '-1' pragma: @@ -1722,7 +2162,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - - '14999' + - '14998' status: code: 200 message: OK diff --git a/src/automation/azext_automation/tests/latest/recordings/test_automation_dsc_configuration.yaml b/src/automation/azext_automation/tests/latest/recordings/test_automation_dsc_configuration.yaml new file mode 100644 index 00000000000..6a78cfc7b5c --- /dev/null +++ b/src/automation/azext_automation/tests/latest/recordings/test_automation_dsc_configuration.yaml @@ -0,0 +1,498 @@ +interactions: +- request: + body: '{"name": "account000002", "location": "westus2", "properties": {"sku": + {"name": "Basic"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation account create + Connection: + - keep-alive + Content-Length: + - '90' + Content-Type: + - application/json + ParameterSetName: + - -n -g --location + User-Agent: + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002?api-version=2021-06-22 + response: + body: + string: '{"name":"account000002","systemData":{"createdAt":"2024-01-15T07:20:16.4566667+00:00","lastModifiedAt":"2024-01-15T07:20:16.4566667+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://dc47a3cc-d102-460a-b12d-e9a996f10c85.agentsvc.wus2.azure-automation.net/accounts/dc47a3cc-d102-460a-b12d-e9a996f10c85","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://dc47a3cc-d102-460a-b12d-e9a996f10c85.jrds.wus2.azure-automation.net/automationAccounts/dc47a3cc-d102-460a-b12d-e9a996f10c85","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-15T07:20:16.4566667+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T07:20:16.4566667+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '1218' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 07:20:17 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002?api-version=2021-06-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: + - '1199' + status: + code: 201 + message: Created +- request: + body: '{"location": "westus2", "name": "SetupServer", "properties": {"source": + {"type": "embeddedContent", "value": "Configuration SetupServer {\r\n Node + localhost {\r\n WindowsFeature IIS {\r\n Name + = Web-Server;\r\n Ensure = Present\r\n }\r\n }\r\n}"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation configuration create + Connection: + - keep-alive + Content-Length: + - '332' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name -n --location --source-type --source + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer","name":"SetupServer","type":"Microsoft.Automation/AutomationAccounts/Configurations","location":"westus2","tags":{},"etag":"\"638409000205100000\"","properties":{"provisioningState":"Succeeded","jobCount":0,"parameters":{},"description":null,"source":null,"state":"Published","creationTime":"2024-01-15T07:20:20.5066667+00:00","lastModifiedTime":"2024-01-15T07:20:20.51+00:00","logVerbose":false,"rawTags":null,"nodeConfigurationCount":0}}' + headers: + cache-control: + - no-cache + content-length: + - '650' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 07:20:20 GMT + etag: + - '"638409000205100000"' + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer?api-version=2023-11-01 + 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: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation configuration list + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations?api-version=2023-11-01 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer","location":"westus2","name":"SetupServer","type":"Microsoft.Automation/AutomationAccounts/Configurations","tags":{},"properties":{"state":"Published","creationTime":"2024-01-15T07:20:20.5066667+00:00","lastModifiedTime":"2024-01-15T07:20:20.51+00:00"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '475' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 07:20:21 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 configuration show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name -n + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer","name":"SetupServer","type":"Microsoft.Automation/AutomationAccounts/Configurations","location":"westus2","tags":{},"etag":"\"638409000205100000\"","properties":{"provisioningState":"Succeeded","jobCount":0,"parameters":{},"description":null,"source":null,"state":"Published","creationTime":"2024-01-15T07:20:20.5066667+00:00","lastModifiedTime":"2024-01-15T07:20:20.51+00:00","logVerbose":false,"rawTags":null,"nodeConfigurationCount":0}}' + headers: + cache-control: + - no-cache + content-length: + - '650' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 07:20:23 GMT + etag: + - '"638409000205100000"' + 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 configuration show-content + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name -n + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer/content?api-version=2023-11-01 + response: + body: + string: "Configuration SetupServer {\r\n Node localhost {\r\n \ + \ WindowsFeature IIS {\r\n \ + \ Name = Web-Server;\r\n Ensure = Present\r\n }\r\n \ + \ }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '204' + content-type: + - text/powershell + date: + - Mon, 15 Jan 2024 07:20:24 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 configuration update + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name -n --location --source-type --source + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer","name":"SetupServer","type":"Microsoft.Automation/AutomationAccounts/Configurations","location":"westus2","tags":{},"etag":"\"638409000205100000\"","properties":{"provisioningState":"Succeeded","jobCount":0,"parameters":{},"description":null,"source":null,"state":"Published","creationTime":"2024-01-15T07:20:20.5066667+00:00","lastModifiedTime":"2024-01-15T07:20:20.51+00:00","logVerbose":false,"rawTags":null,"nodeConfigurationCount":0}}' + headers: + cache-control: + - no-cache + content-length: + - '650' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 07:20:25 GMT + etag: + - '"638409000205100000"' + 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: '{"etag": "\"638409000205100000\"", "location": "westus2", "properties": + {"creationTime": "2024-01-15T07:20:20.5066667+00:00", "jobCount": 0, "lastModifiedTime": + "2024-01-15T07:20:20.51+00:00", "logVerbose": false, "nodeConfigurationCount": + 0, "parameters": {}, "provisioningState": "Succeeded", "source": {"type": "embeddedContent", + "value": "Configuration SetupServer {\r\n Node localhostServer {\r\n WindowsFeature + IIS {\r\n Name = Web-Server;\r\n Ensure + = Present\r\n }\r\n }\r\n}"}, "state": "Published"}, "tags": {}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation configuration update + Connection: + - keep-alive + Content-Length: + - '605' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name -n --location --source-type --source + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer","name":"SetupServer","type":"Microsoft.Automation/AutomationAccounts/Configurations","location":"westus2","tags":{},"etag":"\"638409000270766667\"","properties":{"provisioningState":"Succeeded","jobCount":0,"parameters":{},"description":null,"source":null,"state":"Published","creationTime":"2024-01-15T07:20:20.5066667+00:00","lastModifiedTime":"2024-01-15T07:20:27.0766667+00:00","logVerbose":false,"rawTags":null,"nodeConfigurationCount":0}}' + headers: + cache-control: + - no-cache + content-length: + - '655' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 07:20:26 GMT + etag: + - '"638409000270766667"' + 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 + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation configuration show-content + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name -n + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer/content?api-version=2023-11-01 + response: + body: + string: "Configuration SetupServer {\r\n Node localhostServer {\r\n \ + \ WindowsFeature IIS {\r\n \ + \ Name = Web-Server;\r\n Ensure = Present\r\n }\r\ + \n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '210' + content-type: + - text/powershell + date: + - Mon, 15 Jan 2024 07:20:28 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 configuration delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g --automation-account-name -n -y + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations/SetupServer?api-version=2023-11-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Mon, 15 Jan 2024 07:20:31 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 +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation configuration list + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_dsc_configuration_000001/providers/Microsoft.Automation/automationAccounts/account000002/configurations?api-version=2023-11-01 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 07:20:32 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 +version: 1 diff --git a/src/automation/azext_automation/tests/latest/recordings/test_automation_hrw.yaml b/src/automation/azext_automation/tests/latest/recordings/test_automation_hrw.yaml new file mode 100644 index 00000000000..61417724a41 --- /dev/null +++ b/src/automation/azext_automation/tests/latest/recordings/test_automation_hrw.yaml @@ -0,0 +1,2181 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - unknown + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-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/southafricanorth\"\ + ,\"name\":\"southafricanorth\",\"displayName\":\"South Africa North\",\"regionalDisplayName\"\ + :\"(Africa) South Africa North\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Africa\",\"longitude\"\ + :\"28.21837\",\"latitude\":\"-25.73134\",\"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.978\",\"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.373\",\"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/italynorth\"\ + ,\"name\":\"italynorth\",\"displayName\":\"Italy North\",\"regionalDisplayName\"\ + :\"(Europe) Italy North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"9.18109\",\"\ + latitude\":\"45.46888\",\"physicalLocation\":\"Milan\",\"pairedRegion\":[]}},{\"\ + 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/polandcentral\"\ + ,\"name\":\"polandcentral\",\"displayName\":\"Poland Central\",\"regionalDisplayName\"\ + :\"(Europe) Poland Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\"\ + :\"21.01666\",\"latitude\":\"52.23334\",\"physicalLocation\":\"Warsaw\",\"\ + pairedRegion\":[]}},{\"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/centraluseuap\"\ + ,\"name\":\"centraluseuap\",\"displayName\":\"Central US EUAP\",\"regionalDisplayName\"\ + :\"(US) Central US EUAP\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-93.6208\",\"latitude\"\ + :\"41.5908\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"name\":\"eastus2euap\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/israelcentral\"\ + ,\"name\":\"israelcentral\",\"displayName\":\"Israel Central\",\"regionalDisplayName\"\ + :\"(Middle East) Israel Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Middle East\",\"\ + longitude\":\"33.4506633\",\"latitude\":\"31.2655698\",\"physicalLocation\"\ + :\"Israel\",\"pairedRegion\":[]}},{\"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\":[]}},{\"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/sweden\"\ + ,\"name\":\"sweden\",\"displayName\":\"Sweden\",\"regionalDisplayName\":\"\ + Sweden\",\"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/brazilus\"\ + ,\"name\":\"brazilus\",\"displayName\":\"Brazil US\",\"regionalDisplayName\"\ + :\"(South America) Brazil US\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"South America\",\"longitude\"\ + :\"0\",\"latitude\":\"0\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"\ + name\":\"brazilsoutheast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast\"\ + }]}},{\"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/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/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/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/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\",\"physicalLocation\":\"\",\"pairedRegion\":[{\"name\":\"centraluseuap\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap\"\ + }]}},{\"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/westcentralus\"\ + ,\"name\":\"westcentralus\",\"displayName\":\"West Central US\",\"regionalDisplayName\"\ + :\"(US) West Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-110.234\",\"latitude\"\ + :\"40.89\",\"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\":\"australiacentral2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2\"\ + }]}},{\"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\":\"australiacentral\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral\"\ + }]}},{\"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/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/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\"\ + }]}}]}" + headers: + cache-control: + - no-cache + content-length: + - '32116' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:13:59 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"name": "test-account-000002", "location": "westus2", "properties": {"sku": + {"name": "Basic"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation account create + Connection: + - keep-alive + Content-Length: + - '96' + Content-Type: + - application/json + ParameterSetName: + - --resource-group --name --location + User-Agent: + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2021-06-22 + response: + body: + string: '{"name":"test-account-000002","systemData":{"createdAt":"2024-01-15T09:14:01.21+00:00","lastModifiedAt":"2024-01-15T09:14:01.21+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://1e4b864c-87a5-4956-8209-0361f5812026.agentsvc.wus2.azure-automation.net/accounts/1e4b864c-87a5-4956-8209-0361f5812026","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://1e4b864c-87a5-4956-8209-0361f5812026.jrds.wus2.azure-automation.net/automationAccounts/1e4b864c-87a5-4956-8209-0361f5812026","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-15T09:14:01.21+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-15T09:14:01.21+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '1195' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:02 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2021-06-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: + - '1199' + status: + code: 201 + message: Created +- request: + body: '{"name": "hrwg-000004"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg create + Connection: + - keep-alive + Content-Length: + - '23' + Content-Type: + - application/json + ParameterSetName: + - --resource-group --automation-account-name --name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004?api-version=2022-08-08 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004","name":"hrwg-000004","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups","properties":{"groupType":"User","credential":{"name":null},"hybridRunbookWorkers":null},"systemData":{"createdAt":"2024-01-15T09:14:04.1176743+00:00","lastModifiedAt":"2024-01-15T09:14:04.1176743+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '514' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:03 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004?api-version=2022-08-08 + 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: + - '1199' + 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.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004?api-version=2022-08-08 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004","name":"hrwg-000004","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups","properties":{"groupType":"User","credential":{"name":null},"hybridRunbookWorkers":null},"systemData":{"createdAt":"2024-01-15T09:14:04.1176743+00:00","lastModifiedAt":"2024-01-15T09:14:04.1176743+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '514' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:05 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 list + Connection: + - keep-alive + ParameterSetName: + - --resource-group --automation-account-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups?api-version=2022-08-08 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004","name":"hrwg-000004","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups","properties":{"groupType":"User","credential":{"name":null},"hybridRunbookWorkers":null},"systemData":{"createdAt":"2024-01-15T09:14:04.1176743+00:00","lastModifiedAt":"2024-01-15T09:14:04.1176743+00:00"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '526' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:06 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.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers?api-version=2022-08-08 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:08 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: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_hrw000001?api-version=2022-09-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001","name":"cli_test_automation_hrw000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","test":"test_automation_hrw","date":"2024-01-15T09:13:53Z","module":"automation"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '388' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:09 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json + response: + body: + string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\"\ + ,\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {},\n \"variables\"\ + : {},\n \"resources\": [],\n \"outputs\": {\n \"aliases\": {\n \"\ + type\": \"object\",\n \"value\": {\n \"Linux\": {\n \"\ + CentOS85Gen2\": {\n \"publisher\": \"OpenLogic\",\n \ + \ \"offer\": \"CentOS\",\n \"sku\": \"8_5-gen2\",\n \ + \ \"version\": \"latest\",\n \"architecture\": \"x64\"\n \ + \ },\n \"Debian11\": {\n \"publisher\": \"Debian\"\ + ,\n \"offer\": \"debian-11\",\n \"sku\": \"11-backports-gen2\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"FlatcarLinuxFreeGen2\": {\n \"\ + publisher\": \"kinvolk\",\n \"offer\": \"flatcar-container-linux-free\"\ + ,\n \"sku\": \"stable-gen2\",\n \"version\": \"latest\"\ + ,\n \"architecture\": \"x64\"\n },\n \"OpenSuseLeap154Gen2\"\ + : {\n \"publisher\": \"SUSE\",\n \"offer\": \"openSUSE-leap-15-4\"\ + ,\n \"sku\": \"gen2\",\n \"version\": \"latest\",\n\ + \ \"architecture\": \"x64\"\n },\n \"RHELRaw8LVMGen2\"\ + : {\n \"publisher\": \"RedHat\",\n \"offer\": \"\ + RHEL\",\n \"sku\": \"8-lvm-gen2\",\n \"version\": \ + \ \"latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"SuseSles15SP3\": {\n \"publisher\": \"SUSE\",\n \ + \ \"offer\": \"sles-15-sp3\",\n \"sku\": \"gen2\",\n \ + \ \"version\": \"latest\",\n \"architecture\": \"x64\"\n \ + \ },\n \"Ubuntu2204\": {\n \"publisher\": \"\ + Canonical\",\n \"offer\": \"0001-com-ubuntu-server-jammy\",\n\ + \ \"sku\": \"22_04-lts-gen2\",\n \"version\": \"latest\"\ + ,\n \"architecture\": \"x64\"\n }\n },\n \ + \ \"Windows\": {\n \"Win2022Datacenter\": {\n \"publisher\"\ + : \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n\ + \ \"sku\": \"2022-datacenter-g2\",\n \"version\": \"\ + latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"Win2022AzureEditionCore\": {\n \"publisher\": \"MicrosoftWindowsServer\"\ + ,\n \"offer\": \"WindowsServer\",\n \"sku\": \"2022-datacenter-azure-edition-core\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"Win2019Datacenter\": {\n \"publisher\"\ + : \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n\ + \ \"sku\": \"2019-datacenter-gensecond\",\n \"version\"\ + : \"latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"Win2016Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\"\ + ,\n \"offer\": \"WindowsServer\",\n \"sku\": \"2016-datacenter-gensecond\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"Win2012R2Datacenter\": {\n \"\ + publisher\": \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\"\ + ,\n \"sku\": \"2012-R2-Datacenter\",\n \"version\":\ + \ \"latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"Win2012Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\"\ + ,\n \"offer\": \"WindowsServer\",\n \"sku\": \"2012-Datacenter\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"Win2008R2SP1\": {\n \"publisher\"\ + : \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n\ + \ \"sku\": \"2008-R2-SP1\",\n \"version\": \"latest\"\ + ,\n \"architecture\": \"x64\"\n }\n }\n }\n\ + \ }\n }\n}\n" + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + cache-control: + - max-age=300 + connection: + - keep-alive + content-length: + - '3615' + content-security-policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + content-type: + - text/plain; charset=utf-8 + cross-origin-resource-policy: + - cross-origin + date: + - Mon, 15 Jan 2024 09:14:10 GMT + etag: + - W/"9fee27d398b0211e374a0f0e8e79c9b3a0342cfa43466b26b8548409639c8c17" + expires: + - Mon, 15 Jan 2024 09:19:10 GMT + source-age: + - '0' + strict-transport-security: + - max-age=31536000 + vary: + - Authorization,Accept-Encoding,Origin + via: + - 1.1 varnish + x-cache: + - HIT + x-cache-hits: + - '1' + x-content-type-options: + - nosniff + x-fastly-request-id: + - 8f34e5f742f0749e031a0703963dbb9c0a5db014 + x-frame-options: + - deny + x-github-request-id: + - 3CF0:29FD3:2ABBE5:3622AC:65A45289 + x-served-by: + - cache-qpg1230-QPG + x-timer: + - S1705310050.193446,VS0,VE255 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-compute/30.4.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-jammy/skus/22_04-lts-gen2/versions?$top=1&$orderby=name%20desc&api-version=2023-09-01 + response: + body: + string: "[\r\n {\r\n \"location\": \"westus2\",\r\n \"name\": \"22.04.202312060\"\ + ,\r\n \"id\": \"/Subscriptions/00000000-0000-0000-0000-000000000000/Providers/Microsoft.Compute/Locations/westus2/Publishers/Canonical/ArtifactTypes/VMImage/Offers/0001-com-ubuntu-server-jammy/Skus/22_04-lts-gen2/Versions/22.04.202312060\"\ + \r\n }\r\n]" + headers: + cache-control: + - no-cache + content-length: + - '309' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:12 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/ListVMImagesVersionsFromLocation3Min;15999,Microsoft.Compute/ListVMImagesVersionsFromLocation30Min;43990 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-compute/30.4.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-jammy/skus/22_04-lts-gen2/versions/22.04.202312060?api-version=2023-09-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"hyperVGeneration\": \"V2\",\r\n \ + \ \"architecture\": \"x64\",\r\n \"replicaType\": \"Managed\",\r\n \ + \ \"replicaCount\": 10,\r\n \"disallowed\": {\r\n \"vmDiskType\"\ + : \"Unmanaged\"\r\n },\r\n \"automaticOSUpgradeProperties\": {\r\n \ + \ \"automaticOSUpgradeSupported\": false\r\n },\r\n \"imageDeprecationStatus\"\ + : {\r\n \"imageState\": \"Active\"\r\n },\r\n \"features\": [\r\ + \n {\r\n \"name\": \"SecurityType\",\r\n \"value\": \"\ + TrustedLaunchSupported\"\r\n },\r\n {\r\n \"name\": \"IsAcceleratedNetworkSupported\"\ + ,\r\n \"value\": \"True\"\r\n },\r\n {\r\n \"name\"\ + : \"DiskControllerTypes\",\r\n \"value\": \"SCSI, NVMe\"\r\n },\r\ + \n {\r\n \"name\": \"IsHibernateSupported\",\r\n \"value\"\ + : \"True\"\r\n }\r\n ],\r\n \"osDiskImage\": {\r\n \"operatingSystem\"\ + : \"Linux\",\r\n \"sizeInGb\": 30\r\n },\r\n \"dataDiskImages\"\ + : []\r\n },\r\n \"location\": \"westus2\",\r\n \"name\": \"22.04.202312060\"\ + ,\r\n \"id\": \"/Subscriptions/00000000-0000-0000-0000-000000000000/Providers/Microsoft.Compute/Locations/westus2/Publishers/Canonical/ArtifactTypes/VMImage/Offers/0001-com-ubuntu-server-jammy/Skus/22_04-lts-gen2/Versions/22.04.202312060\"\ + \r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1160' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:13 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/GetVMImageFromLocation3Min;12999,Microsoft.Compute/GetVMImageFromLocation30Min;73991 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/virtualNetworks?api-version=2022-01-01 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:14 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.31.0 + method: GET + uri: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/main/arm-compute/quickstart-templates/aliases.json + response: + body: + string: "{\n \"$schema\": \"http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json\"\ + ,\n \"contentVersion\": \"1.0.0.0\",\n \"parameters\": {},\n \"variables\"\ + : {},\n \"resources\": [],\n \"outputs\": {\n \"aliases\": {\n \"\ + type\": \"object\",\n \"value\": {\n \"Linux\": {\n \"\ + CentOS85Gen2\": {\n \"publisher\": \"OpenLogic\",\n \ + \ \"offer\": \"CentOS\",\n \"sku\": \"8_5-gen2\",\n \ + \ \"version\": \"latest\",\n \"architecture\": \"x64\"\n \ + \ },\n \"Debian11\": {\n \"publisher\": \"Debian\"\ + ,\n \"offer\": \"debian-11\",\n \"sku\": \"11-backports-gen2\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"FlatcarLinuxFreeGen2\": {\n \"\ + publisher\": \"kinvolk\",\n \"offer\": \"flatcar-container-linux-free\"\ + ,\n \"sku\": \"stable-gen2\",\n \"version\": \"latest\"\ + ,\n \"architecture\": \"x64\"\n },\n \"OpenSuseLeap154Gen2\"\ + : {\n \"publisher\": \"SUSE\",\n \"offer\": \"openSUSE-leap-15-4\"\ + ,\n \"sku\": \"gen2\",\n \"version\": \"latest\",\n\ + \ \"architecture\": \"x64\"\n },\n \"RHELRaw8LVMGen2\"\ + : {\n \"publisher\": \"RedHat\",\n \"offer\": \"\ + RHEL\",\n \"sku\": \"8-lvm-gen2\",\n \"version\": \ + \ \"latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"SuseSles15SP3\": {\n \"publisher\": \"SUSE\",\n \ + \ \"offer\": \"sles-15-sp3\",\n \"sku\": \"gen2\",\n \ + \ \"version\": \"latest\",\n \"architecture\": \"x64\"\n \ + \ },\n \"Ubuntu2204\": {\n \"publisher\": \"\ + Canonical\",\n \"offer\": \"0001-com-ubuntu-server-jammy\",\n\ + \ \"sku\": \"22_04-lts-gen2\",\n \"version\": \"latest\"\ + ,\n \"architecture\": \"x64\"\n }\n },\n \ + \ \"Windows\": {\n \"Win2022Datacenter\": {\n \"publisher\"\ + : \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n\ + \ \"sku\": \"2022-datacenter-g2\",\n \"version\": \"\ + latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"Win2022AzureEditionCore\": {\n \"publisher\": \"MicrosoftWindowsServer\"\ + ,\n \"offer\": \"WindowsServer\",\n \"sku\": \"2022-datacenter-azure-edition-core\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"Win2019Datacenter\": {\n \"publisher\"\ + : \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n\ + \ \"sku\": \"2019-datacenter-gensecond\",\n \"version\"\ + : \"latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"Win2016Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\"\ + ,\n \"offer\": \"WindowsServer\",\n \"sku\": \"2016-datacenter-gensecond\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"Win2012R2Datacenter\": {\n \"\ + publisher\": \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\"\ + ,\n \"sku\": \"2012-R2-Datacenter\",\n \"version\":\ + \ \"latest\",\n \"architecture\": \"x64\"\n },\n \ + \ \"Win2012Datacenter\": {\n \"publisher\": \"MicrosoftWindowsServer\"\ + ,\n \"offer\": \"WindowsServer\",\n \"sku\": \"2012-Datacenter\"\ + ,\n \"version\": \"latest\",\n \"architecture\": \"\ + x64\"\n },\n \"Win2008R2SP1\": {\n \"publisher\"\ + : \"MicrosoftWindowsServer\",\n \"offer\": \"WindowsServer\",\n\ + \ \"sku\": \"2008-R2-SP1\",\n \"version\": \"latest\"\ + ,\n \"architecture\": \"x64\"\n }\n }\n }\n\ + \ }\n }\n}\n" + headers: + accept-ranges: + - bytes + access-control-allow-origin: + - '*' + cache-control: + - max-age=300 + connection: + - keep-alive + content-length: + - '3615' + content-security-policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + content-type: + - text/plain; charset=utf-8 + cross-origin-resource-policy: + - cross-origin + date: + - Mon, 15 Jan 2024 09:14:15 GMT + etag: + - W/"9fee27d398b0211e374a0f0e8e79c9b3a0342cfa43466b26b8548409639c8c17" + expires: + - Mon, 15 Jan 2024 09:19:15 GMT + source-age: + - '5' + strict-transport-security: + - max-age=31536000 + vary: + - Authorization,Accept-Encoding,Origin + via: + - 1.1 varnish + x-cache: + - HIT + x-cache-hits: + - '1' + x-content-type-options: + - nosniff + x-fastly-request-id: + - aeb10ee3298b4cd547bb02aec92d073d966e91ce + x-frame-options: + - deny + x-github-request-id: + - 3CF0:29FD3:2ABBE5:3622AC:65A45289 + x-served-by: + - cache-qpg1273-QPG + x-timer: + - S1705310055.220317,VS0,VE1 + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-compute/30.4.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-jammy/skus/22_04-lts-gen2/versions?$top=1&$orderby=name%20desc&api-version=2023-09-01 + response: + body: + string: "[\r\n {\r\n \"location\": \"westus2\",\r\n \"name\": \"22.04.202312060\"\ + ,\r\n \"id\": \"/Subscriptions/00000000-0000-0000-0000-000000000000/Providers/Microsoft.Compute/Locations/westus2/Publishers/Canonical/ArtifactTypes/VMImage/Offers/0001-com-ubuntu-server-jammy/Skus/22_04-lts-gen2/Versions/22.04.202312060\"\ + \r\n }\r\n]" + headers: + cache-control: + - no-cache + content-length: + - '309' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:15 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/ListVMImagesVersionsFromLocation3Min;15998,Microsoft.Compute/ListVMImagesVersionsFromLocation30Min;43989 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-compute/30.4.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-jammy/skus/22_04-lts-gen2/versions/22.04.202312060?api-version=2023-09-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"hyperVGeneration\": \"V2\",\r\n \ + \ \"architecture\": \"x64\",\r\n \"replicaType\": \"Managed\",\r\n \ + \ \"replicaCount\": 10,\r\n \"disallowed\": {\r\n \"vmDiskType\"\ + : \"Unmanaged\"\r\n },\r\n \"automaticOSUpgradeProperties\": {\r\n \ + \ \"automaticOSUpgradeSupported\": false\r\n },\r\n \"imageDeprecationStatus\"\ + : {\r\n \"imageState\": \"Active\"\r\n },\r\n \"features\": [\r\ + \n {\r\n \"name\": \"SecurityType\",\r\n \"value\": \"\ + TrustedLaunchSupported\"\r\n },\r\n {\r\n \"name\": \"IsAcceleratedNetworkSupported\"\ + ,\r\n \"value\": \"True\"\r\n },\r\n {\r\n \"name\"\ + : \"DiskControllerTypes\",\r\n \"value\": \"SCSI, NVMe\"\r\n },\r\ + \n {\r\n \"name\": \"IsHibernateSupported\",\r\n \"value\"\ + : \"True\"\r\n }\r\n ],\r\n \"osDiskImage\": {\r\n \"operatingSystem\"\ + : \"Linux\",\r\n \"sizeInGb\": 30\r\n },\r\n \"dataDiskImages\"\ + : []\r\n },\r\n \"location\": \"westus2\",\r\n \"name\": \"22.04.202312060\"\ + ,\r\n \"id\": \"/Subscriptions/00000000-0000-0000-0000-000000000000/Providers/Microsoft.Compute/Locations/westus2/Publishers/Canonical/ArtifactTypes/VMImage/Offers/0001-com-ubuntu-server-jammy/Skus/22_04-lts-gen2/Versions/22.04.202312060\"\ + \r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1160' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:16 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/GetVMImageFromLocation3Min;12998,Microsoft.Compute/GetVMImageFromLocation30Min;73990 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-compute/30.4.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-jammy/skus/22_04-lts-gen2/versions?$top=1&$orderby=name%20desc&api-version=2023-09-01 + response: + body: + string: "[\r\n {\r\n \"location\": \"westus2\",\r\n \"name\": \"22.04.202312060\"\ + ,\r\n \"id\": \"/Subscriptions/00000000-0000-0000-0000-000000000000/Providers/Microsoft.Compute/Locations/westus2/Publishers/Canonical/ArtifactTypes/VMImage/Offers/0001-com-ubuntu-server-jammy/Skus/22_04-lts-gen2/Versions/22.04.202312060\"\ + \r\n }\r\n]" + headers: + cache-control: + - no-cache + content-length: + - '309' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:19 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/ListVMImagesVersionsFromLocation3Min;15997,Microsoft.Compute/ListVMImagesVersionsFromLocation30Min;43988 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-compute/30.4.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-jammy/skus/22_04-lts-gen2/versions/22.04.202312060?api-version=2023-09-01 + response: + body: + string: "{\r\n \"properties\": {\r\n \"hyperVGeneration\": \"V2\",\r\n \ + \ \"architecture\": \"x64\",\r\n \"replicaType\": \"Managed\",\r\n \ + \ \"replicaCount\": 10,\r\n \"disallowed\": {\r\n \"vmDiskType\"\ + : \"Unmanaged\"\r\n },\r\n \"automaticOSUpgradeProperties\": {\r\n \ + \ \"automaticOSUpgradeSupported\": false\r\n },\r\n \"imageDeprecationStatus\"\ + : {\r\n \"imageState\": \"Active\"\r\n },\r\n \"features\": [\r\ + \n {\r\n \"name\": \"SecurityType\",\r\n \"value\": \"\ + TrustedLaunchSupported\"\r\n },\r\n {\r\n \"name\": \"IsAcceleratedNetworkSupported\"\ + ,\r\n \"value\": \"True\"\r\n },\r\n {\r\n \"name\"\ + : \"DiskControllerTypes\",\r\n \"value\": \"SCSI, NVMe\"\r\n },\r\ + \n {\r\n \"name\": \"IsHibernateSupported\",\r\n \"value\"\ + : \"True\"\r\n }\r\n ],\r\n \"osDiskImage\": {\r\n \"operatingSystem\"\ + : \"Linux\",\r\n \"sizeInGb\": 30\r\n },\r\n \"dataDiskImages\"\ + : []\r\n },\r\n \"location\": \"westus2\",\r\n \"name\": \"22.04.202312060\"\ + ,\r\n \"id\": \"/Subscriptions/00000000-0000-0000-0000-000000000000/Providers/Microsoft.Compute/Locations/westus2/Publishers/Canonical/ArtifactTypes/VMImage/Offers/0001-com-ubuntu-server-jammy/Skus/22_04-lts-gen2/Versions/22.04.202312060\"\ + \r\n}" + headers: + cache-control: + - no-cache + content-length: + - '1160' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:21 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/GetVMImageFromLocation3Min;12997,Microsoft.Compute/GetVMImageFromLocation30Min;73989 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"template": {"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", "parameters": {}, "variables": {}, "resources": + [{"name": "vm-000003VNET", "type": "Microsoft.Network/virtualNetworks", "location": + "westus2", "apiVersion": "2015-06-15", "dependsOn": [], "tags": {}, "properties": + {"addressSpace": {"addressPrefixes": ["10.0.0.0/16"]}, "subnets": [{"name": + "vm-000003Subnet", "properties": {"addressPrefix": "10.0.0.0/24"}}]}}, {"type": + "Microsoft.Network/networkSecurityGroups", "name": "vm-000003NSG", "apiVersion": + "2015-06-15", "location": "westus2", "tags": {}, "dependsOn": [], "properties": + {"securityRules": [{"name": "default-allow-ssh", "properties": {"protocol": + "Tcp", "sourcePortRange": "*", "destinationPortRange": "22", "sourceAddressPrefix": + "*", "destinationAddressPrefix": "*", "access": "Allow", "priority": 1000, "direction": + "Inbound"}}]}}, {"apiVersion": "2022-01-01", "type": "Microsoft.Network/publicIPAddresses", + "name": "vm-000003PublicIP", "location": "westus2", "tags": {}, "dependsOn": + [], "properties": {"publicIPAllocationMethod": "Static"}, "sku": {"name": "Standard"}}, + {"apiVersion": "2015-06-15", "type": "Microsoft.Network/networkInterfaces", + "name": "vm-000003VMNic", "location": "westus2", "tags": {}, "dependsOn": ["Microsoft.Network/virtualNetworks/vm-000003VNET", + "Microsoft.Network/networkSecurityGroups/vm-000003NSG", "Microsoft.Network/publicIpAddresses/vm-000003PublicIP"], + "properties": {"ipConfigurations": [{"name": "ipconfigvm-000003", "properties": + {"privateIPAllocationMethod": "Dynamic", "subnet": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/virtualNetworks/vm-000003VNET/subnets/vm-000003Subnet"}, + "publicIPAddress": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/publicIPAddresses/vm-000003PublicIP"}}}], + "networkSecurityGroup": {"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkSecurityGroups/vm-000003NSG"}}}, + {"apiVersion": "2023-09-01", "type": "Microsoft.Compute/virtualMachines", "name": + "vm-000003", "location": "westus2", "tags": {}, "dependsOn": ["Microsoft.Network/networkInterfaces/vm-000003VMNic"], + "properties": {"hardwareProfile": {"vmSize": "Standard_DS1_v2"}, "networkProfile": + {"networkInterfaces": [{"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic", + "properties": {"deleteOption": null}}]}, "storageProfile": {"osDisk": {"createOption": + "fromImage", "name": null, "caching": "ReadWrite", "managedDisk": {"storageAccountType": + null}}, "imageReference": {"publisher": "Canonical", "offer": "0001-com-ubuntu-server-jammy", + "sku": "22_04-lts-gen2", "version": "latest"}}, "osProfile": {"computerName": + "vm-000003", "adminUsername": "qinkaiwu", "linuxConfiguration": {"disablePasswordAuthentication": + true, "ssh": {"publicKeys": [{"keyData": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVgRC426K/geE+i5SvGkT38+af5mgmZGiaf2o+VsV7vFstsPppzNJIYtd1c8ygpUa/BG75BeaNHGYCJhFUa857sqLrTeGrZU5gsDfBeVklq2O+jQez4s8AHLK383g1Pf1Ok96WjUM98EoCn01Yu6ZcfwJWU2uaFRprYz8Gx2y1mkbNF150VspSkZ6vagC9PdK60jazd1tvXgfxBr26RSPY47yxv2S31msWLLg7m+gaFUaCJZuhVoWA4gQOJmyN4K3ekqoORNwPJ5JbkACpHEmhAdDu4jbN3tS0LBJjdiP89JrtdG4Czhf3PTIdJDODUJ+qTi5UKBVh8KaZO4Z2oznX", + "path": "/home/qinkaiwu/.ssh/authorized_keys"}]}}}, "securityProfile": {"securityType": + "TrustedLaunch", "uefiSettings": {"secureBootEnabled": true, "vTpmEnabled": + true}}}}], "outputs": {}}, "parameters": {}, "mode": "incremental"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + Content-Length: + - '3792' + Content-Type: + - application/json + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2022-09-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/vm_deploy_C79DtAG6MHsbYGP2d2UNQRBVcZ2JRUI3","name":"vm_deploy_C79DtAG6MHsbYGP2d2UNQRBVcZ2JRUI3","type":"Microsoft.Resources/deployments","properties":{"templateHash":"10895502969653540686","parameters":{},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2024-01-15T09:14:29.1825574Z","duration":"PT0.0005689S","correlationId":"7fd107a2-8a75-400a-854e-d4cac8d79608","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["westus2"]},{"resourceType":"networkSecurityGroups","locations":["westus2"]},{"resourceType":"publicIPAddresses","locations":["westus2"]},{"resourceType":"networkInterfaces","locations":["westus2"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachines","locations":["westus2"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/virtualNetworks/vm-000003VNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"vm-000003VNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkSecurityGroups/vm-000003NSG","resourceType":"Microsoft.Network/networkSecurityGroups","resourceName":"vm-000003NSG"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/publicIPAddresses/vm-000003PublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"vm-000003PublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"vm-000003VMNic"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"vm-000003VMNic"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003","resourceType":"Microsoft.Compute/virtualMachines","resourceName":"vm-000003"}]}}' + headers: + azure-asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/vm_deploy_C79DtAG6MHsbYGP2d2UNQRBVcZ2JRUI3/operationStatuses/08584962968198748416?api-version=2022-09-01 + cache-control: + - no-cache + content-length: + - '2498' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08584962968198748416?api-version=2022-09-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:14:30 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08584962968198748416?api-version=2022-09-01 + response: + body: + string: '{"status":"Running"}' + headers: + cache-control: + - no-cache + content-length: + - '20' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:00 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/mock-deployment/operationStatuses/08584962968198748416?api-version=2022-09-01 + response: + body: + string: '{"status":"Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/mock-deployment?api-version=2022-09-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Resources/deployments/vm_deploy_C79DtAG6MHsbYGP2d2UNQRBVcZ2JRUI3","name":"vm_deploy_C79DtAG6MHsbYGP2d2UNQRBVcZ2JRUI3","type":"Microsoft.Resources/deployments","properties":{"templateHash":"10895502969653540686","parameters":{},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2024-01-15T09:15:22.4047168Z","duration":"PT53.2227283S","correlationId":"7fd107a2-8a75-400a-854e-d4cac8d79608","providers":[{"namespace":"Microsoft.Network","resourceTypes":[{"resourceType":"virtualNetworks","locations":["westus2"]},{"resourceType":"networkSecurityGroups","locations":["westus2"]},{"resourceType":"publicIPAddresses","locations":["westus2"]},{"resourceType":"networkInterfaces","locations":["westus2"]}]},{"namespace":"Microsoft.Compute","resourceTypes":[{"resourceType":"virtualMachines","locations":["westus2"]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/virtualNetworks/vm-000003VNET","resourceType":"Microsoft.Network/virtualNetworks","resourceName":"vm-000003VNET"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkSecurityGroups/vm-000003NSG","resourceType":"Microsoft.Network/networkSecurityGroups","resourceName":"vm-000003NSG"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/publicIPAddresses/vm-000003PublicIP","resourceType":"Microsoft.Network/publicIPAddresses","resourceName":"vm-000003PublicIP"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"vm-000003VMNic"},{"dependsOn":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic","resourceType":"Microsoft.Network/networkInterfaces","resourceName":"vm-000003VMNic"}],"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003","resourceType":"Microsoft.Compute/virtualMachines","resourceName":"vm-000003"}],"outputs":{},"outputResources":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkSecurityGroups/vm-000003NSG"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/publicIPAddresses/vm-000003PublicIP"},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/virtualNetworks/vm-000003VNET"}]}}' + headers: + cache-control: + - no-cache + content-length: + - '3363' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:32 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-compute/30.4.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003?$expand=instanceView&api-version=2023-09-01 + response: + body: + string: "{\r\n \"name\": \"vm-000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003\"\ + ,\r\n \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\"\ + : \"westus2\",\r\n \"tags\": {},\r\n \"properties\": {\r\n \"hardwareProfile\"\ + : {\r\n \"vmSize\": \"Standard_DS1_v2\"\r\n },\r\n \"provisioningState\"\ + : \"Succeeded\",\r\n \"vmId\": \"f7b19835-38e2-49fe-b0ba-026fb19b4338\"\ + ,\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"\ + publisher\": \"Canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-jammy\"\ + ,\r\n \"sku\": \"22_04-lts-gen2\",\r\n \"version\": \"latest\"\ + ,\r\n \"exactVersion\": \"22.04.202312060\"\r\n },\r\n \"\ + osDisk\": {\r\n \"osType\": \"Linux\",\r\n \"name\": \"vm-000003_OsDisk_1_a3d9101a4cdd4f3ca4453aa27a37ff37\"\ + ,\r\n \"createOption\": \"FromImage\",\r\n \"caching\": \"ReadWrite\"\ + ,\r\n \"managedDisk\": {\r\n \"storageAccountType\": \"Premium_LRS\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/disks/vm-000003_OsDisk_1_a3d9101a4cdd4f3ca4453aa27a37ff37\"\ + \r\n },\r\n \"deleteOption\": \"Detach\",\r\n \"diskSizeGB\"\ + : 30\r\n },\r\n \"dataDisks\": [],\r\n \"diskControllerType\"\ + : \"SCSI\"\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"\ + vm-000003\",\r\n \"adminUsername\": \"qinkaiwu\",\r\n \"linuxConfiguration\"\ + : {\r\n \"disablePasswordAuthentication\": true,\r\n \"ssh\"\ + : {\r\n \"publicKeys\": [\r\n {\r\n \"path\"\ + : \"/home/qinkaiwu/.ssh/authorized_keys\",\r\n \"keyData\": \"\ + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVgRC426K/geE+i5SvGkT38+af5mgmZGiaf2o+VsV7vFstsPppzNJIYtd1c8ygpUa/BG75BeaNHGYCJhFUa857sqLrTeGrZU5gsDfBeVklq2O+jQez4s8AHLK383g1Pf1Ok96WjUM98EoCn01Yu6ZcfwJWU2uaFRprYz8Gx2y1mkbNF150VspSkZ6vagC9PdK60jazd1tvXgfxBr26RSPY47yxv2S31msWLLg7m+gaFUaCJZuhVoWA4gQOJmyN4K3ekqoORNwPJ5JbkACpHEmhAdDu4jbN3tS0LBJjdiP89JrtdG4Czhf3PTIdJDODUJ+qTi5UKBVh8KaZO4Z2oznX\"\ + \r\n }\r\n ]\r\n },\r\n \"provisionVMAgent\"\ + : true,\r\n \"patchSettings\": {\r\n \"patchMode\": \"ImageDefault\"\ + ,\r\n \"assessmentMode\": \"ImageDefault\"\r\n },\r\n \ + \ \"enableVMAgentPlatformUpdates\": false\r\n },\r\n \"secrets\"\ + : [],\r\n \"allowExtensionOperations\": true,\r\n \"requireGuestProvisionSignal\"\ + : true\r\n },\r\n \"securityProfile\": {\r\n \"uefiSettings\":\ + \ {\r\n \"secureBootEnabled\": true,\r\n \"vTpmEnabled\": true\r\ + \n },\r\n \"securityType\": \"TrustedLaunch\"\r\n },\r\n \"\ + networkProfile\": {\"networkInterfaces\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic\"\ + }]},\r\n \"instanceView\": {\r\n \"computerName\": \"vm-000003\",\r\ + \n \"osName\": \"ubuntu\",\r\n \"osVersion\": \"22.04\",\r\n \ + \ \"vmAgent\": {\r\n \"vmAgentVersion\": \"2.9.1.1\",\r\n \ + \ \"statuses\": [\r\n {\r\n \"code\": \"ProvisioningState/succeeded\"\ + ,\r\n \"level\": \"Info\",\r\n \"displayStatus\": \"\ + Ready\",\r\n \"message\": \"Guest Agent is running\",\r\n \ + \ \"time\": \"2024-01-15T09:15:28+00:00\"\r\n }\r\n \ + \ ],\r\n \"extensionHandlers\": []\r\n },\r\n \"disks\":\ + \ [\r\n {\r\n \"name\": \"vm-000003_OsDisk_1_a3d9101a4cdd4f3ca4453aa27a37ff37\"\ + ,\r\n \"statuses\": [\r\n {\r\n \"code\"\ + : \"ProvisioningState/succeeded\",\r\n \"level\": \"Info\",\r\ + \n \"displayStatus\": \"Provisioning succeeded\",\r\n \ + \ \"time\": \"2024-01-15T09:14:51.9745395+00:00\"\r\n }\r\ + \n ]\r\n }\r\n ],\r\n \"hyperVGeneration\": \"V2\"\ + ,\r\n \"statuses\": [\r\n {\r\n \"code\": \"ProvisioningState/succeeded\"\ + ,\r\n \"level\": \"Info\",\r\n \"displayStatus\": \"Provisioning\ + \ succeeded\",\r\n \"time\": \"2024-01-15T09:15:18.4590405+00:00\"\ + \r\n },\r\n {\r\n \"code\": \"PowerState/running\"\ + ,\r\n \"level\": \"Info\",\r\n \"displayStatus\": \"VM running\"\ + \r\n }\r\n ]\r\n },\r\n \"timeCreated\": \"2024-01-15T09:14:47.9745434+00:00\"\ + \r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '4157' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:33 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-resource: + - Microsoft.Compute/LowCostGetSubscriptionMaximum;23995,Microsoft.Compute/LowCostGetResource;32 + status: + code: 200 + message: '' +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic?api-version=2022-01-01 + response: + body: + string: "{\r\n \"name\": \"vm-000003VMNic\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic\"\ + ,\r\n \"etag\": \"W/\\\"1d5a16c1-c9e5-4d33-842d-72aab729c2d4\\\"\",\r\n \ + \ \"tags\": {},\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"resourceGuid\": \"3e297a4f-88a7-4a33-b1ee-8a3ac1c82890\",\r\n \ + \ \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfigvm-000003\"\ + ,\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic/ipConfigurations/ipconfigvm-000003\"\ + ,\r\n \"etag\": \"W/\\\"1d5a16c1-c9e5-4d33-842d-72aab729c2d4\\\"\"\ + ,\r\n \"type\": \"Microsoft.Network/networkInterfaces/ipConfigurations\"\ + ,\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\ + ,\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\"\ + : \"Dynamic\",\r\n \"publicIPAddress\": {\r\n \"id\":\ + \ \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/publicIPAddresses/vm-000003PublicIP\"\ + \r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/virtualNetworks/vm-000003VNET/subnets/vm-000003Subnet\"\ + \r\n },\r\n \"primary\": true,\r\n \"privateIPAddressVersion\"\ + : \"IPv4\"\r\n }\r\n }\r\n ],\r\n \"dnsSettings\": {\r\n\ + \ \"dnsServers\": [],\r\n \"appliedDnsServers\": [],\r\n \"\ + internalDomainNameSuffix\": \"nte4btw2nizebdoehjtecyuozg.xx.internal.cloudapp.net\"\ + \r\n },\r\n \"macAddress\": \"00-22-48-C1-55-09\",\r\n \"enableAcceleratedNetworking\"\ + : false,\r\n \"vnetEncryptionSupported\": false,\r\n \"enableIPForwarding\"\ + : false,\r\n \"networkSecurityGroup\": {\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkSecurityGroups/vm-000003NSG\"\ + \r\n },\r\n \"primary\": true,\r\n \"virtualMachine\": {\r\n \ + \ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003\"\ + \r\n },\r\n \"hostedWorkloads\": [],\r\n \"tapConfigurations\": [],\r\ + \n \"nicType\": \"Standard\",\r\n \"allowPort25Out\": true,\r\n \"\ + auxiliaryMode\": \"None\"\r\n },\r\n \"type\": \"Microsoft.Network/networkInterfaces\"\ + ,\r\n \"location\": \"westus2\",\r\n \"kind\": \"Regular\"\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '2559' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:34 GMT + etag: + - W/"1d5a16c1-c9e5-4d33-842d-72aab729c2d4" + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-arm-service-request-id: + - 6369227f-a02a-4f4f-a167-ac55b7f4b066 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - vm create + Connection: + - keep-alive + ParameterSetName: + - -g -n --image --generate-ssh-key + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/publicIPAddresses/vm-000003PublicIP?api-version=2022-01-01 + response: + body: + string: "{\r\n \"name\": \"vm-000003PublicIP\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/publicIPAddresses/vm-000003PublicIP\"\ + ,\r\n \"etag\": \"W/\\\"120d895e-bc20-4378-8927-5c945f853fe5\\\"\",\r\n \ + \ \"location\": \"westus2\",\r\n \"tags\": {},\r\n \"properties\": {\r\n\ + \ \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"8930de3e-2266-4d14-a641-0926a28c7f3f\"\ + ,\r\n \"ipAddress\": \"4.154.116.189\",\r\n \"publicIPAddressVersion\"\ + : \"IPv4\",\r\n \"publicIPAllocationMethod\": \"Static\",\r\n \"idleTimeoutInMinutes\"\ + : 4,\r\n \"ipTags\": [],\r\n \"ipConfiguration\": {\r\n \"id\"\ + : \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Network/networkInterfaces/vm-000003VMNic/ipConfigurations/ipconfigvm-000003\"\ + \r\n }\r\n },\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\ + \n \"sku\": {\r\n \"name\": \"Standard\",\r\n \"tier\": \"Regional\"\ + \r\n }\r\n}" + headers: + cache-control: + - no-cache + content-length: + - '957' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:35 GMT + etag: + - W/"120d895e-bc20-4378-8927-5c945f853fe5" + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-arm-service-request-id: + - 5109952c-b711-438f-a752-6120dd8a2957 + status: + code: 200 + message: OK +- request: + body: '{"name": "c010ad12-ef14-4a2a-aa9e-ef22c4745ddd", "properties": {"vmResourceId": + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg hrw create + Connection: + - keep-alive + Content-Length: + - '234' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --hybrid-runbook-worker-group-name -n --vm-resource-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers/c010ad12-ef14-4a2a-aa9e-ef22c4745ddd?api-version=2022-08-08 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers/c010ad12-ef14-4a2a-aa9e-ef22c4745ddd","name":"c010ad12-ef14-4a2a-aa9e-ef22c4745ddd","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups/HybridRunbookWorkers","properties":{"ip":"","registeredDateTime":"2024-01-15T09:15:37.8841309+00:00","lastSeenDateTime":"0001-01-01T00:00:00+00:00","vmResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003","workerName":"vm-000003","workerType":"HybridV2"},"systemData":{"createdAt":"2024-01-15T09:15:37.8841309+00:00","lastModifiedAt":"2024-01-15T09:15:37.8841309+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '873' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:37 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers/c010ad12-ef14-4a2a-aa9e-ef22c4745ddd?api-version=2022-08-08 + 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: + - '1199' + status: + code: 201 + message: Created +- 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.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers?api-version=2022-08-08 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers/c010ad12-ef14-4a2a-aa9e-ef22c4745ddd","name":"c010ad12-ef14-4a2a-aa9e-ef22c4745ddd","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups/HybridRunbookWorkers","properties":{"ip":"","registeredDateTime":"2024-01-15T09:15:37.8841309+00:00","lastSeenDateTime":"0001-01-01T00:00:00+00:00","vmResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003","workerName":"vm-000003","workerType":"HybridV2"},"systemData":{"createdAt":"2024-01-15T09:15:37.8841309+00:00","lastModifiedAt":"2024-01-15T09:15:37.8841309+00:00"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '885' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:39 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: '{"name": "hrwg2-000005"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg create + Connection: + - keep-alive + Content-Length: + - '24' + Content-Type: + - application/json + ParameterSetName: + - --resource-group --automation-account-name --name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg2-000005?api-version=2022-08-08 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg2-000005","name":"hrwg2-000005","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups","properties":{"groupType":"User","credential":{"name":null},"hybridRunbookWorkers":null},"systemData":{"createdAt":"2024-01-15T09:15:41.493488+00:00","lastModifiedAt":"2024-01-15T09:15:41.493488+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '514' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:41 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg2-000005?api-version=2022-08-08 + 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: + - '1199' + status: + code: 201 + message: Created +- request: + body: '{"hybridRunbookWorkerGroupName": "hrwg2-000005"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg hrw move + Connection: + - keep-alive + Content-Length: + - '48' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --hybrid-runbook-worker-group-name -n --target-hybrid-runbook-worker-group-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: POST + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers/c010ad12-ef14-4a2a-aa9e-ef22c4745ddd/move?api-version=2023-11-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Mon, 15 Jan 2024 09:15:43 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-writes: + - '1199' + 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.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004/hybridRunbookWorkers?api-version=2022-08-08 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:43 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.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg2-000005/hybridRunbookWorkers?api-version=2022-08-08 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg2-000005/hybridRunbookWorkers/c010ad12-ef14-4a2a-aa9e-ef22c4745ddd","name":"c010ad12-ef14-4a2a-aa9e-ef22c4745ddd","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups/HybridRunbookWorkers","properties":{"ip":"","registeredDateTime":"2024-01-15T09:15:37.8841309+00:00","lastSeenDateTime":"0001-01-01T00:00:00+00:00","vmResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Compute/virtualMachines/vm-000003","workerName":"vm-000003","workerType":"HybridV2"},"systemData":{"createdAt":"2024-01-15T09:15:37.8841309+00:00","lastModifiedAt":"2024-01-15T09:15:43.3372853+00:00"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '886' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 15 Jan 2024 09:15:46 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.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_hrw000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hrwg-000004?api-version=2022-08-08 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Mon, 15 Jan 2024 09:15:48 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 +version: 1 diff --git a/src/automation/azext_automation/tests/latest/recordings/test_automation_runtime_environment.yaml b/src/automation/azext_automation/tests/latest/recordings/test_automation_runtime_environment.yaml new file mode 100644 index 00000000000..67a0caab9e2 --- /dev/null +++ b/src/automation/azext_automation/tests/latest/recordings/test_automation_runtime_environment.yaml @@ -0,0 +1,692 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation account create + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_runtime_environment_000001?api-version=2022-09-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001","name":"cli_test_automation_runtime_environment_000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","test":"test_automation_runtime_environment","date":"2024-01-16T05:24:34Z","module":"automation"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '438' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:37 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"name": "account000002", "location": "westus2", "properties": {"sku": + {"name": "Basic"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation account create + Connection: + - keep-alive + Content-Length: + - '90' + Content-Type: + - application/json + ParameterSetName: + - -n -g + User-Agent: + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002?api-version=2021-06-22 + response: + body: + string: '{"name":"account000002","systemData":{"createdAt":"2024-01-16T05:24:40.5766667+00:00","lastModifiedAt":"2024-01-16T05:24:40.5766667+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://f05531ea-f027-4d26-8fd2-eafaf7fe5d68.agentsvc.wus2.azure-automation.net/accounts/f05531ea-f027-4d26-8fd2-eafaf7fe5d68","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://f05531ea-f027-4d26-8fd2-eafaf7fe5d68.jrds.wus2.azure-automation.net/automationAccounts/f05531ea-f027-4d26-8fd2-eafaf7fe5d68","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-16T05:24:40.5766667+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-16T05:24:40.5766667+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '1220' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:42 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002?api-version=2021-06-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: + - '1199' + status: + code: 201 + message: Created +- request: + body: '{"location": "westus2", "properties": {"defaultPackages": {"Az": "7.3.2"}, + "runtime": {"language": "PowerShell", "version": "7.1"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment create + Connection: + - keep-alive + Content-Length: + - '132' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --name --location --language --version --default-packages + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:44.1058906+00:00","lastModifiedAt":"2024-01-16T05:24:44.1058906+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003","name":"rt000003","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"7.1"},"defaultPackages":{"az":"7.3.2"},"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '580' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:43 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003?api-version=2023-05-15-preview + 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: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment list + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments?api-version=2023-05-15-preview + response: + body: + string: '{"value":[{"systemData":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/PowerShell-5.1","name":"PowerShell-5.1","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"5.1"},"defaultPackages":{"az":"8.0.0"},"description":"System-generated + Runtime Environment for your Automation account with Runtime language: PowerShell + & Runtime version: 5.1. It automatically populates Packages defined for PowerShell + 5.1 runtime version in your Automation account. This Runtime environment is + non-editable. "}},{"systemData":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/PowerShell-7.1","name":"PowerShell-7.1","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"7.1"},"defaultPackages":{"az":"8.0.0"},"description":"System-generated + Runtime Environment for your Automation account with Runtime language: PowerShell + & Runtime version: 7.1. It automatically populates Packages defined for PowerShell + 7.1 runtime version in your Automation account. This Runtime environment is + non-editable. "}},{"systemData":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/PowerShell-7.2","name":"PowerShell-7.2","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"7.2"},"defaultPackages":{"az":"8.3.0","azure + cli":"2.56.0"},"description":"System-generated Runtime Environment for your + Automation account with Runtime language: PowerShell & Runtime version: 7.2. + It automatically populates Packages defined for PowerShell 7.2 runtime version + in your Automation account. This Runtime environment is non-editable. "}},{"systemData":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/Python-2.7","name":"Python-2.7","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"Python","version":"2.7"},"defaultPackages":null,"description":"System-generated + Runtime Environment for your Automation account with Runtime language: Python + & Runtime version: 2.7. It automatically populates Packages defined for Python + 2.7 runtime version in your Automation account. This Runtime environment is + non-editable. "}},{"systemData":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/Python-3.10","name":"Python-3.10","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"Python","version":"3.10"},"defaultPackages":null,"description":"System-generated + Runtime Environment for your Automation account with Runtime language: Python + & Runtime version: 3.10. It automatically populates Packages defined for Python + 3.10 runtime version in your Automation account. This Runtime environment + is non-editable. "}},{"systemData":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/Python-3.8","name":"Python-3.8","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"Python","version":"3.8"},"defaultPackages":null,"description":"System-generated + Runtime Environment for your Automation account with Runtime language: Python + & Runtime version: 3.8. It automatically populates Packages defined for Python + 3.8 runtime version in your Automation account. This Runtime environment is + non-editable. "}},{"systemData":{"createdAt":"2024-01-16T05:24:44.1058906+00:00","lastModifiedAt":"2024-01-16T05:24:44.1058906+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003","name":"rt000003","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"7.1"},"defaultPackages":{"az":"7.3.2"},"description":null}}]}' + headers: + cache-control: + - no-cache + content-length: + - '5106' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:45 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 runtime-environment show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:44.1058906+00:00","lastModifiedAt":"2024-01-16T05:24:44.1058906+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003","name":"rt000003","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"7.1"},"defaultPackages":{"az":"7.3.2"},"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '580' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:46 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 runtime-environment update + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --name --default-packages + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:44.1058906+00:00","lastModifiedAt":"2024-01-16T05:24:44.1058906+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003","name":"rt000003","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"7.1"},"defaultPackages":{"az":"7.3.2"},"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '580' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:48 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: '{"location": "westus2", "properties": {"defaultPackages": {"Az": "8.0.0"}, + "runtime": {"language": "PowerShell", "version": "7.1"}}, "tags": {}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment update + Connection: + - keep-alive + Content-Length: + - '144' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --name --default-packages + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:44.1058906+00:00","lastModifiedAt":"2024-01-16T05:24:49.3487966+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003","name":"rt000003","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments","location":"westus2","tags":{},"etag":null,"properties":{"runtime":{"language":"PowerShell","version":"7.1"},"defaultPackages":{"az":"8.0.0"},"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '580' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:48 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 + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 200 + message: OK +- request: + body: '{"properties": {"contentLink": {"uri": "https://teststorage.blob.core.windows.net/dsccomposite/OmsCompositeResources.zip", + "version": "1.0.0.0"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment package create + Connection: + - keep-alive + Content-Length: + - '146' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --runtime-environment-name --name --uri --content-version + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:51.0533333+00:00","lastModifiedAt":"2024-01-16T05:24:51.12+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004","name":"rt-package000004","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments/Packages","location":"westus2","tags":{},"etag":null,"properties":{"isDefault":false,"version":null,"sizeInBytes":0,"error":{"code":null,"message":null},"provisioningState":"Creating"}}' + headers: + cache-control: + - no-cache + content-length: + - '631' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:50 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004?api-version=2023-05-15-preview + 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: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment package list + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --runtime-environment-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages?api-version=2023-05-15-preview + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004","name":"rt-package000004","location":"westus2","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments/Packages","systemData":{"createdAt":"2024-01-16T05:24:51.0533333+00:00","lastModifiedAt":"2024-01-16T05:24:51.12+00:00"},"properties":{"isDefault":false,"version":null,"sizeInBytes":0,"provisioningState":"Creating"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '584' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:52 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 runtime-environment package show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --runtime-environment-name --name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:51.0533333+00:00","lastModifiedAt":"2024-01-16T05:24:51.12+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004","name":"rt-package000004","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments/Packages","location":"westus2","tags":{},"etag":null,"properties":{"isDefault":false,"version":null,"sizeInBytes":0,"error":{"code":null,"message":""},"provisioningState":"Creating"}}' + headers: + cache-control: + - no-cache + content-length: + - '629' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:54 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 runtime-environment package update + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --runtime-environment-name --name --uri --content-version + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:51.0533333+00:00","lastModifiedAt":"2024-01-16T05:24:51.12+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004","name":"rt-package000004","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments/Packages","location":"westus2","tags":{},"etag":null,"properties":{"isDefault":false,"version":null,"sizeInBytes":0,"error":{"code":null,"message":""},"provisioningState":"Creating"}}' + headers: + cache-control: + - no-cache + content-length: + - '629' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:55 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: '{"location": "westus2", "properties": {"contentLink": {"uri": "https://teststorage.blob.core.windows.net/mycontainer/MyModule.zip", + "version": "1.0.0.0"}, "error": {"message": ""}, "sizeInBytes": 0}, "tags": + {}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment package update + Connection: + - keep-alive + Content-Length: + - '211' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --runtime-environment-name --name --uri --content-version + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004?api-version=2023-05-15-preview + response: + body: + string: '{"systemData":{"createdAt":"2024-01-16T05:24:51.0533333+00:00","lastModifiedAt":"2024-01-16T05:24:56.4466667+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004","name":"rt-package000004","type":"Microsoft.Automation/AutomationAccounts/RuntimeEnvironments/Packages","location":"westus2","tags":{},"etag":null,"properties":{"isDefault":false,"version":null,"sizeInBytes":0,"error":{"code":null,"message":null},"provisioningState":"Creating"}}' + headers: + cache-control: + - no-cache + content-length: + - '636' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 16 Jan 2024 05:24:55 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 + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment package delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g --automation-account-name --runtime-environment-name --name -y + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003/packages/rt-package000004?api-version=2023-05-15-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Tue, 16 Jan 2024 05:24:57 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 +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - automation runtime-environment delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g --automation-account-name --name -y + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_runtime_environment_000001/providers/Microsoft.Automation/automationAccounts/account000002/runtimeEnvironments/rt000003?api-version=2023-05-15-preview + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Tue, 16 Jan 2024 05:24:59 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 +version: 1 diff --git a/src/automation/azext_automation/tests/latest/recordings/test_automation_software_update_configuration.yaml b/src/automation/azext_automation/tests/latest/recordings/test_automation_software_update_configuration.yaml index 481b465016f..cf576b6306c 100644 --- a/src/automation/azext_automation/tests/latest/recordings/test_automation_software_update_configuration.yaml +++ b/src/automation/azext_automation/tests/latest/recordings/test_automation_software_update_configuration.yaml @@ -271,7 +271,7 @@ interactions: User-Agent: - AZURECLI/2.46.0 azsdk-python-azure-mgmt-compute/29.1.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions?$top=1&$orderby=name%20desc&api-version=2022-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions?$top=1&$orderby=name%20desc&api-version=2023-09-01 response: body: string: "[\r\n {\r\n \"location\": \"westus2\",\r\n \"name\": \"18.04.202303080\",\r\n @@ -322,7 +322,7 @@ interactions: User-Agent: - AZURECLI/2.46.0 azsdk-python-azure-mgmt-compute/29.1.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions/18.04.202303080?api-version=2022-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions/18.04.202303080?api-version=2023-09-01 response: body: string: "{\r\n \"properties\": {\r\n \"hyperVGeneration\": \"V1\",\r\n \"architecture\": @@ -536,7 +536,7 @@ interactions: User-Agent: - AZURECLI/2.46.0 azsdk-python-azure-mgmt-compute/29.1.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions?$top=1&$orderby=name%20desc&api-version=2022-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions?$top=1&$orderby=name%20desc&api-version=2023-09-01 response: body: string: "[\r\n {\r\n \"location\": \"westus2\",\r\n \"name\": \"18.04.202303080\",\r\n @@ -587,7 +587,7 @@ interactions: User-Agent: - AZURECLI/2.46.0 azsdk-python-azure-mgmt-compute/29.1.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions/18.04.202303080?api-version=2022-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions/18.04.202303080?api-version=2023-09-01 response: body: string: "{\r\n \"properties\": {\r\n \"hyperVGeneration\": \"V1\",\r\n \"architecture\": @@ -648,7 +648,7 @@ interactions: User-Agent: - AZURECLI/2.46.0 azsdk-python-azure-mgmt-compute/29.1.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions?$top=1&$orderby=name%20desc&api-version=2022-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions?$top=1&$orderby=name%20desc&api-version=2023-09-01 response: body: string: "[\r\n {\r\n \"location\": \"westus2\",\r\n \"name\": \"18.04.202303080\",\r\n @@ -699,7 +699,7 @@ interactions: User-Agent: - AZURECLI/2.46.0 azsdk-python-azure-mgmt-compute/29.1.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions/18.04.202303080?api-version=2022-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/westus2/publishers/Canonical/artifacttypes/vmimage/offers/UbuntuServer/skus/18.04-LTS/versions/18.04.202303080?api-version=2023-09-01 response: body: string: "{\r\n \"properties\": {\r\n \"hyperVGeneration\": \"V1\",\r\n \"architecture\": @@ -962,7 +962,7 @@ interactions: User-Agent: - AZURECLI/2.46.0 azsdk-python-azure-mgmt-compute/29.1.0 Python/3.9.5 (Windows-10-10.0.19045-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_software_update_configuration000001/providers/Microsoft.Compute/virtualMachines/vm-000004?$expand=instanceView&api-version=2022-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_software_update_configuration000001/providers/Microsoft.Compute/virtualMachines/vm-000004?$expand=instanceView&api-version=2023-09-01 response: body: string: "{\r\n \"name\": \"vm-000004\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_software_update_configuration000001/providers/Microsoft.Compute/virtualMachines/vm-000004\",\r\n diff --git a/src/automation/azext_automation/tests/latest/recordings/test_automation_source_control.yaml b/src/automation/azext_automation/tests/latest/recordings/test_automation_source_control.yaml new file mode 100644 index 00000000000..a2cb447bf5f --- /dev/null +++ b/src/automation/azext_automation/tests/latest/recordings/test_automation_source_control.yaml @@ -0,0 +1,1058 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation account create + Connection: + - keep-alive + ParameterSetName: + - -n -g + User-Agent: + - AZURECLI/2.56.0 azsdk-python-azure-mgmt-resource/23.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_source_control_000001?api-version=2022-09-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001","name":"cli_test_automation_source_control_000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","test":"test_automation_source_control","date":"2024-01-22T08:59:48Z","module":"automation"},"properties":{"provisioningState":"Succeeded"}}' + headers: + cache-control: + - no-cache + content-length: + - '423' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 08:59:53 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"name": "account000002", "location": "westus2", "properties": {"sku": + {"name": "Basic"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation account create + Connection: + - keep-alive + Content-Length: + - '90' + Content-Type: + - application/json + ParameterSetName: + - -n -g + User-Agent: + - AZURECLI/2.56.0 azsdk-python-mgmt-automation/1.1.0b2 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002?api-version=2021-06-22 + response: + body: + string: '{"name":"account000002","systemData":{"createdAt":"2024-01-22T08:59:55.33+00:00","lastModifiedAt":"2024-01-22T08:59:55.33+00:00"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://7569bf74-5a2a-40c1-8d7e-cf35a5448419.agentsvc.wus2.azure-automation.net/accounts/7569bf74-5a2a-40c1-8d7e-cf35a5448419","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"automationHybridServiceUrl":"https://7569bf74-5a2a-40c1-8d7e-cf35a5448419.jrds.wus2.azure-automation.net/automationAccounts/7569bf74-5a2a-40c1-8d7e-cf35a5448419","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-22T08:59:55.33+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-22T08:59:55.33+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '1195' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 08:59:55 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002?api-version=2021-06-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: + - '1199' + status: + code: 201 + message: Created +- request: + body: '{"identity": {"type": "SystemAssigned"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - rest + Connection: + - keep-alive + Content-Length: + - '40' + Content-Type: + - application/json + ParameterSetName: + - -m -u --body + User-Agent: + - python/3.10.11 (Windows-10-10.0.22631-SP0) AZURECLI/2.56.0 + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002?api-version=2020-01-13-preview + response: + body: + string: '{"name":"account000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","identity":{"type":"SystemAssigned","principalId":"a2550939-9ba6-4a59-8518-3b7f9956cf74","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47"},"tags":{},"etag":null,"properties":{"disableLocalAuth":false,"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://7569bf74-5a2a-40c1-8d7e-cf35a5448419.agentsvc.wus2.azure-automation.net/accounts/7569bf74-5a2a-40c1-8d7e-cf35a5448419","encryption":{"keySource":"Microsoft.Automation","identity":{"userAssignedIdentity":null}},"RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}},"powershell72":{"builtinModules":{"Az":"8.3.0"}}},"creationTime":"2024-01-22T08:59:55.33+00:00","lastModifiedBy":null,"lastModifiedTime":"2024-01-22T08:59:59.7633333+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '1071' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 08:59:59 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 + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 200 + message: OK +- request: + body: '{"properties": {"branch": "master", "folderPath": "/", "publishRunbook": + false, "repoUrl": "https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git", + "securityToken": {"accessToken": "ghp_MOCKED_GITHUB_TOKEN", + "tokenType": "PersonalAccessToken"}, "sourceType": "GitHub"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation source-control create + Connection: + - keep-alive + Content-Length: + - '288' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --name --repo-url --branch --source-type --folder-path + --access-token --token-type --publish-runbook + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003","name":"sourcecontrol000003","type":null,"properties":{"creationTime":"2024-01-22T09:00:02.8314198+00:00","lastModifiedTime":"2024-01-22T09:00:02.8314198+00:00","repoUrl":"https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git","sourceType":"GitHub","branch":"master","folderPath":"/","autoSync":false,"publishRunbook":false,"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '562' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:02 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003?api-version=2023-11-01 + 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: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation source-control list + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls?api-version=2023-11-01 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003","name":"sourcecontrol000003","type":null,"properties":{"creationTime":"2024-01-22T09:00:02.8314198+00:00","lastModifiedTime":"2024-01-22T09:00:02.8314198+00:00","repoUrl":"https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git","sourceType":"GitHub","branch":"master","folderPath":"/","autoSync":false,"publishRunbook":false,"description":null}}]}' + headers: + cache-control: + - no-cache + content-length: + - '574' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:03 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 source-control show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003","name":"sourcecontrol000003","type":null,"properties":{"creationTime":"2024-01-22T09:00:02.8314198+00:00","lastModifiedTime":"2024-01-22T09:00:02.8314198+00:00","repoUrl":"https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git","sourceType":"GitHub","branch":"master","folderPath":"/","autoSync":false,"publishRunbook":false,"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '562' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:05 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 source-control update + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --name --access-token --token-type --publish-runbook + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003","name":"sourcecontrol000003","type":null,"properties":{"creationTime":"2024-01-22T09:00:02.8314198+00:00","lastModifiedTime":"2024-01-22T09:00:02.8314198+00:00","repoUrl":"https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git","sourceType":"GitHub","branch":"master","folderPath":"/","autoSync":false,"publishRunbook":false,"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '562' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:07 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: '{"properties": {"autoSync": false, "branch": "master", "creationTime": + "2024-01-22T09:00:02.8314198+00:00", "folderPath": "/", "lastModifiedTime": + "2024-01-22T09:00:02.8314198+00:00", "publishRunbook": true, "repoUrl": "https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git", + "sourceType": "GitHub", "securityToken": {"accessToken": "ghp_MOCKED_GITHUB_TOKEN", + "tokenType": "PersonalAccessToken"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation source-control update + Connection: + - keep-alive + Content-Length: + - '416' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --name --access-token --token-type --publish-runbook + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003","name":"sourcecontrol000003","type":null,"properties":{"creationTime":"2024-01-22T09:00:02.8314198+00:00","lastModifiedTime":"2024-01-22T09:00:09.3073186+00:00","repoUrl":"https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git","sourceType":"GitHub","branch":"master","folderPath":"/","autoSync":false,"publishRunbook":true,"description":null}}' + headers: + cache-control: + - no-cache + content-length: + - '561' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:08 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003?api-version=2023-11-01 + 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: + - '1199' + status: + code: 201 + message: Created +- request: + body: '{"properties": {"commitId": ""}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation source-control sync-job create + Connection: + - keep-alive + Content-Length: + - '32' + Content-Type: + - application/json + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id --commit-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":null,"endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '489' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:10 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + 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: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation source-control sync-job list + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs?api-version=2023-11-01 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":null,"endTime":null,"syncType":"FullSync"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '501' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:12 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","exception":null,"creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":null,"endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '506' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:15 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","exception":null,"creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":null,"endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '506' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:17 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","exception":null,"creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":null,"endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '506' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:20 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","exception":null,"creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":null,"endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '506' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:22 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","exception":null,"creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":"2024-01-22T09:00:22.9093137+00:00","endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '537' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:24 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","exception":null,"creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":"2024-01-22T09:00:22.9093137+00:00","endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '537' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:27 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065","properties":{"sourceControlSyncJobId":"ba7e6fcd-ea81-4adf-9bed-a38557110065","provisioningState":"Running","exception":null,"creationTime":"2024-01-22T09:00:11.1166712+00:00","startTime":"2024-01-22T09:00:22.9093137+00:00","endTime":null,"syncType":"FullSync"}}' + headers: + cache-control: + - no-cache + content-length: + - '537' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:30 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 source-control sync-job show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065?api-version=2023-11-01 + response: + body: + string: "{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065\"\ + ,\"properties\":{\"sourceControlSyncJobId\":\"ba7e6fcd-ea81-4adf-9bed-a38557110065\"\ + ,\"provisioningState\":\"Failed\",\"exception\":\"Unable to retrieve Managed\ + \ Identity/ AzureRunAsConnection.\\r\\nEnable managed identity. Managed identity\ + \ would be more secure than Run as Account and offers ease of use since it\ + \ doesn\u2019t require any credentials to be stored.\\r\\nIn case Managed\ + \ Identity is already enabled, give contributor access in the automation account.\\\ + r\\nRelevant Doc: https://docs.microsoft.com/azure/automation/source-control-integration#prerequisites\\\ + r\\n You can also create Run As Account, validate AzureRunAsConnection exist\ + \ and retry.\\r\\nRelevant Doc: https://docs.microsoft.com/en-us/azure/automation/automation-create-runas-account#create-run-as-account-from-the-portal\ + \ (Unable to retrieve Managed Identity/ AzureRunAsConnection.\\r\\nEnable\ + \ managed identity. Managed identity would be more secure than Run as Account\ + \ and offers ease of use since it doesn\u2019t require any credentials to\ + \ be stored.\\r\\nIn case Managed Identity is already enabled, give contributor\ + \ access in the automation account.\\r\\nRelevant Doc: https://docs.microsoft.com/azure/automation/source-control-integration#prerequisites\\\ + r\\n You can also create Run As Account, validate AzureRunAsConnection exist\ + \ and retry.\\r\\nRelevant Doc: https://docs.microsoft.com/en-us/azure/automation/automation-create-runas-account#create-run-as-account-from-the-portal)\"\ + ,\"creationTime\":\"2024-01-22T09:00:11.1166712+00:00\",\"startTime\":\"2024-01-22T09:00:30.6280811+00:00\"\ + ,\"endTime\":\"2024-01-22T09:00:30.6280811+00:00\",\"syncType\":\"FullSync\"\ + }}" + headers: + cache-control: + - no-cache + content-length: + - '1862' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:32 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 source-control sync-job stream list + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --sync-job-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams?api-version=2023-11-01 + response: + body: + string: "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108238624596_00000000000000000001\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108238624596_00000000000000000001\"\ + ,\"summary\":\"========================================================================================================\\\ + r\\n\\r\\nAzure Automation Source Control.\\r\\nSupported runbooks to sync:\ + \ PowerShell Workflow, PowerShell Scripts, DSC Configurations, Graphical,\ + \ and Python 2.\",\"time\":\"2024-01-22T09:00:23.8624596+00:00\",\"streamType\"\ + :\"Output\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108240186826_00000000000000000002\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108240186826_00000000000000000002\"\ + ,\"summary\":\"Setting AzureEnvironment.\",\"time\":\"2024-01-22T09:00:24.0186826+00:00\"\ + ,\"streamType\":\"Output\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108285499379_00000000000000000003\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108285499379_00000000000000000003\"\ + ,\"summary\":\"GET http://127.0.0.1:20096/oauth2/token?resource=https://management.azure.com\ + \ with 0-byte payload\",\"time\":\"2024-01-22T09:00:28.5499379+00:00\",\"\ + streamType\":\"Verbose\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108292843193_00000000000000000004\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108292843193_00000000000000000004\"\ + ,\"summary\":\"received -1-byte response of content type application/json;\ + \ charset=utf-8\",\"time\":\"2024-01-22T09:00:29.2843193+00:00\",\"streamType\"\ + :\"Verbose\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108294561822_00000000000000000005\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108294561822_00000000000000000005\"\ + ,\"summary\":\"POST https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/listKeys?api-version=2017-05-15-preview\ + \ with 0-byte payload\",\"time\":\"2024-01-22T09:00:29.4561822+00:00\",\"\ + streamType\":\"Verbose\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108297374673_00000000000000000006\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108297374673_00000000000000000006\"\ + ,\"summary\":\"System-Assigned Managed Identity is enabled but it does not\ + \ have Contributor access to Automation account\",\"time\":\"2024-01-22T09:00:29.7374673+00:00\"\ + ,\"streamType\":\"Output\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108298624432_00000000000000000007\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108298624432_00000000000000000007\"\ + ,\"summary\":\"This runbook uses Run As accounts for authentication. Run As\ + \ accounts are retiring on 30 September 2023 and you must replace it with\ + \ Managed identities. To know more, visit https://learn.microsoft.com/azure/automation/migrate-run-as-accounts-managed-identity?tabs=run-as-account\"\ + ,\"time\":\"2024-01-22T09:00:29.8624432+00:00\",\"streamType\":\"Warning\"\ + }},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108304249605_00000000000000000008\"\ + ,\"properties\":{\"sourceControlSyncJobStreamId\":\"8685dc32-7996-461a-848a-d7bff9955db3_00638415108304249605_00000000000000000008\"\ + ,\"summary\":\"Unable to retrieve Managed Identity/ AzureRunAsConnection.\\\ + r\\nEnable managed identity. Managed identity would be more secure than Run\ + \ as Account and offers ease of use since it doesn\u2019t require any credentials\ + \ to be stored.\\r\\nIn case Managed Identity is already enabled, give contributor\ + \ access in the automation account.\\r\\nRelevant Doc: https://docs.microsoft.com/azure/automation/source-control-integration#prerequisites\\\ + r\\n You can also create Run As Account, validate AzureRunAsConnection exist\ + \ and retry.\\r\\nRelevant Doc: https://docs.microsoft.com/en-us/azure/automation/automation-create-runas-account#create-run-as-account-from-the-portal\"\ + ,\"time\":\"2024-01-22T09:00:30.4249605+00:00\",\"streamType\":\"Error\"}}]}" + headers: + cache-control: + - no-cache + content-length: + - '6344' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:34 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 source-control sync-job stream show + Connection: + - keep-alive + ParameterSetName: + - -g --automation-account-name --source-control-name --sync-job-id --stream-id + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108238624596_00000000000000000001?api-version=2023-11-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003/sourceControlSyncJobs/ba7e6fcd-ea81-4adf-9bed-a38557110065/streams/8685dc32-7996-461a-848a-d7bff9955db3_00638415108238624596_00000000000000000001","properties":{"sourceControlSyncJobStreamId":"8685dc32-7996-461a-848a-d7bff9955db3_00638415108238624596_00000000000000000001","summary":"========================================================================================================\r\n\r\nAzure + Automation Source Control.\r\nSupported runbooks to sync: PowerShell Workflow, + PowerShell Scripts, DSC Configurations, Graphical, and Python 2.","time":"2024-01-22T09:00:23.8624596+00:00","streamType":"Output","streamText":"========================================================================================================\r\nAzure + Automation Source Control.\r\nSupported runbooks to sync: PowerShell Workflow, + PowerShell Scripts, DSC Configurations, Graphical, and Python 2.\r\n","value":{"value":"========================================================================================================\r\n\r\nAzure + Automation Source Control.\r\nSupported runbooks to sync: PowerShell Workflow, + PowerShell Scripts, DSC Configurations, Graphical, and Python 2."}}}' + headers: + cache-control: + - no-cache + content-length: + - '1387' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 22 Jan 2024 09:00:35 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 source-control delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g --automation-account-name --name -y + User-Agent: + - AZURECLI/2.56.0 (AAZ) azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_source_control_000001/providers/Microsoft.Automation/automationAccounts/account000002/sourceControls/sourcecontrol000003?api-version=2023-11-01 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Mon, 22 Jan 2024 09:00:38 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 +version: 1 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 5f0e8d41b0e..5cffbddb5ae 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 @@ -5,6 +5,7 @@ # -------------------------------------------------------------------------- import os +import time from unittest import mock from azure.cli.testsdk.scenario_tests import AllowLargeResponse import tempfile @@ -72,9 +73,8 @@ def test_automation(self, resource_group): '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, - 'hybrid_runbook_worker_group_name' : self.create_random_name(prefix='hwg-', length=10), 'python3Package_name': self.create_random_name(prefix='py3-package-', length=24), - 'python3PackageContentUri':'uri=https://files.pythonhosted.org/packages/7f/e2/85dfb9f7364cbd7a9213caea0e91fc948da3c912a2b222a3e43bc9cc6432/requires.io-0.2.6-py2.py3-none-any.whl' + 'python3PackageContentUri': 'uri=https://files.pythonhosted.org/packages/7f/e2/85dfb9f7364cbd7a9213caea0e91fc948da3c912a2b222a3e43bc9cc6432/requires.io-0.2.6-py2.py3-none-any.whl' }) self.cmd('automation account create --resource-group {rg} --name {account_name} --location "West US 2"', checks=[self.check('name', '{account_name}')]) @@ -88,6 +88,11 @@ def test_automation(self, resource_group): self.cmd('automation account list --resource-group {rg}', checks=[ self.check('length(@)', 1) ]) + self.cmd('automation account list-keys --resource-group {rg} --name {account_name}', checks=[ + self.check('length(keys)', 2), + self.check('keys[0].KeyName', 'Primary'), + self.check('keys[1].KeyName', 'Secondary'), + ]) self.cmd('automation runbook create --resource-group {rg} --automation-account-name {account_name} ' '--name {runbook_name} --type PowerShell --location "West US 2"', @@ -100,6 +105,8 @@ def test_automation(self, resource_group): self.check('logProgress', True), self.check('logVerbose', True)]) + self.cmd('automation account show-linked-workspace --resource-group {rg} --name {account_name}') + tempdir = os.path.realpath(tempfile.gettempdir()) script_path = os.path.join(tempdir, 'PowerShell.ps') with open(script_path, 'w') as fp: @@ -112,34 +119,17 @@ 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 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') - self.cmd('automation python3-package create --resource-group {rg} --automation-account-name {account_name} --name {python3Package_name} --content-link {python3PackageContentUri}', - checks=[self.check('name', '{python3Package_name}')]) + checks=[self.check('name', '{python3Package_name}')]) self.cmd('automation python3-package update --resource-group {rg} --automation-account-name {account_name} --name {python3Package_name} --content-link {python3PackageContentUri}', - checks=[self.check('name', '{python3Package_name}')]) + checks=[self.check('name', '{python3Package_name}')]) self.cmd('automation python3-package show --resource-group {rg} --automation-account-name {account_name} --name {python3Package_name}', - checks=[self.check('name', '{python3Package_name}')]) + checks=[self.check('name', '{python3Package_name}')]) self.cmd('automation python3-package list --resource-group {rg} --automation-account-name {account_name} ', - checks=[self.check('length(@)', 1)]) + checks=[self.check('length(@)', 1)]) self.cmd('automation python3-package delete --resource-group {rg} --automation-account-name {account_name} --name {python3Package_name} --yes') @@ -165,6 +155,53 @@ def test_automation(self, resource_group): self.cmd('automation account delete --resource-group {rg} --name {account_name} -y') + @ResourceGroupPreparer(name_prefix='cli_test_automation_hrw', key='rg', location='westus2') + @AllowLargeResponse() + def test_automation_hrw(self, resource_group): + self.kwargs.update({ + 'account': self.create_random_name(prefix='test-account-', length=24), + 'vm': self.create_random_name('vm-', 15), + 'hrwg': self.create_random_name(prefix='hrwg-', length=10), + 'hrwg2': self.create_random_name(prefix='hrwg2-', length=10), + 'hrw': 'c010ad12-ef14-4a2a-aa9e-ef22c4745ddd', + }) + self.cmd('automation account create --resource-group {rg} --name {account} --location "West US 2"', + checks=[self.check('name', '{account}')]) + + self.cmd('automation hrwg create --resource-group {rg} --automation-account-name {account} --name {hrwg}', + checks=[self.check('name', '{hrwg}')]) + + self.cmd('automation hrwg show --resource-group {rg} --automation-account-name {account} --name {hrwg}', + checks=[self.check('name', '{hrwg}')]) + + self.cmd('automation hrwg list --resource-group {rg} --automation-account-name {account}', + checks=[self.check('length(@)', 1)]) + + self.cmd('automation hrwg hrw list --automation-account-name {account} --hybrid-runbook-worker-group-name {hrwg} -g {rg}', + checks=[self.check('length(@)', 0)]) + + self.kwargs['vm_id'] = self.cmd('vm create -g {rg} -n {vm} --image Ubuntu2204 --generate-ssh-key').get_output_in_json()['id'] + + self.cmd('automation hrwg hrw create -g {rg} --automation-account-name {account} --hybrid-runbook-worker-group-name {hrwg} -n {hrw} --vm-resource-id {vm_id}', checks=[ + self.check('vmResourceId', '{vm_id}'), + self.check('name', '{hrw}') + ]) + self.cmd('automation hrwg hrw list --automation-account-name {account} --hybrid-runbook-worker-group-name {hrwg} -g {rg}', checks=[ + self.check('length(@)', 1) + ]) + + self.cmd('automation hrwg create --resource-group {rg} --automation-account-name {account} --name {hrwg2}', + checks=[self.check('name', '{hrwg2}')]) + + self.cmd('automation hrwg hrw move -g {rg} --automation-account-name {account} --hybrid-runbook-worker-group-name {hrwg} -n {hrw} --target-hybrid-runbook-worker-group-name {hrwg2}') + + self.cmd('automation hrwg hrw list --automation-account-name {account} --hybrid-runbook-worker-group-name {hrwg} -g {rg}', + checks=[self.check('length(@)', 0)]) + self.cmd('automation hrwg hrw list --automation-account-name {account} --hybrid-runbook-worker-group-name {hrwg2} -g {rg}', checks=[ + self.check('length(@)', 1) + ]) + self.cmd('automation hrwg delete --resource-group {rg} --automation-account-name {account} --name {hrwg} --yes') + @ResourceGroupPreparer(name_prefix='cli_test_automation_schedule', key='rg', location='westus2') @AllowLargeResponse() def test_automation_schedule(self, resource_group): @@ -215,7 +252,7 @@ def test_automation_software_update_configuration(self, resource_group): self.kwargs.update({ 'account_name': self.create_random_name('account-', 15), 'conf_name': self.create_random_name('conf-', 15), - 'vm_name':self.create_random_name('vm-', 15), + 'vm_name': self.create_random_name('vm-', 15), }) sub = '/subscriptions/' + self.get_subscription_id() @@ -243,7 +280,7 @@ def test_automation_software_update_configuration(self, resource_group): self.check('updateConfiguration.operatingSystem', 'Windows'), self.check('updateConfiguration.targets.azureQueries[0].locations', ['eastus', 'westus']), self.check('updateConfiguration.targets.azureQueries[0].scope', [sub]), - self.check('updateConfiguration.targets.azureQueries[0].tagSettings.tags.tag', ['tag1','tag2']), + self.check('updateConfiguration.targets.azureQueries[0].tagSettings.tags.tag', ['tag1', 'tag2']), self.check('updateConfiguration.windows.excludedKbNumbers', ['16800', '16800']), self.check('updateConfiguration.windows.includedKbNumbers', ['15000', '15000']), self.check('updateConfiguration.windows.includedUpdateClassifications', 'Critical'), @@ -291,3 +328,161 @@ def test_automation_software_update_configuration(self, resource_group): self.check('value', []) ]) self.cmd('automation software-update-configuration delete -n {conf_name} -g {rg} --automation-account-name {account_name} -y') + + @ResourceGroupPreparer(name_prefix='cli_test_automation_dsc_configuration_', location='westus2') + @AllowLargeResponse() + def test_automation_dsc_configuration(self, resource_group): + self.kwargs.update({ + 'account': self.create_random_name('account', 15), + 'config': 'SetupServer', + 'location': 'westus2', + 'source_content': '"Configuration SetupServer {\r\n Node localhost {\r\n WindowsFeature IIS {\r\n Name = "Web-Server";\r\n Ensure = "Present"\r\n }\r\n }\r\n}"', + 'source_content_retrieved': '"Configuration SetupServer {\\r\\n Node localhost {\\r\\n WindowsFeature IIS {\\r\\n Name = Web-Server;\\r\\n Ensure = Present\\r\\n }\\r\\n }\\r\\n}"\n', + 'source_content2': '"Configuration SetupServer {\r\n Node localhostServer {\r\n WindowsFeature IIS {\r\n Name = "Web-Server";\r\n Ensure = "Present"\r\n }\r\n }\r\n}"', + 'source_content2_retrieved': '"Configuration SetupServer {\\r\\n Node localhostServer {\\r\\n WindowsFeature IIS {\\r\\n Name = Web-Server;\\r\\n Ensure = Present\\r\\n }\\r\\n }\\r\\n}"\n', + }) + + self.cmd('automation account create -n {account} -g {rg} --location {location}') + self.cmd('automation configuration create -g {rg} --automation-account-name {account} -n {config} --location {location} ' + '--source-type embeddedContent --source {source_content}', + checks=[self.check('name', '{config}')]) + + self.cmd('automation configuration list -g {rg} --automation-account-name {account}', checks=[ + self.check('[0].name', '{config}'), + self.check('length(@)', 1), + ]) + + self.cmd('automation configuration show -g {rg} --automation-account-name {account} -n {config}', checks=[ + self.check('name', '{config}') + ]) + + config_content = self.cmd('automation configuration show-content -g {rg} --automation-account-name {account} -n {config}') + self.assertEquals(self.kwargs['source_content_retrieved'], config_content.output) + + self.cmd('automation configuration update -g {rg} --automation-account-name {account} -n {config} --location {location} ' + '--source-type embeddedContent --source {source_content2}') + + config_content = self.cmd('automation configuration show-content -g {rg} --automation-account-name {account} -n {config}') + self.assertEquals(self.kwargs['source_content2_retrieved'], config_content.output) + + self.cmd('automation configuration delete -g {rg} --automation-account-name {account} -n {config} -y') + self.cmd('automation configuration list -g {rg} --automation-account-name {account}', checks=[ + self.check('length(@)', 0), + ]) + + @ResourceGroupPreparer(name_prefix='cli_test_automation_runtime_environment_', location='westus2') + @AllowLargeResponse() + def test_automation_runtime_environment(self, resource_group): + self.kwargs.update({ + 'account': self.create_random_name('account', 15), + 'rt': self.create_random_name('rt', 15), + 'rt_package': self.create_random_name('rt-package', 15), + 'rt_package_uri': 'https://teststorage.blob.core.windows.net/dsccomposite/OmsCompositeResources.zip', + 'rt_package_uri2': 'https://teststorage.blob.core.windows.net/mycontainer/MyModule.zip', + 'location': 'westus2', + }) + + self.cmd('automation account create -n {account} -g {rg}') + self.cmd('automation runtime-environment create -g {rg} --automation-account-name {account} --name {rt} --location {location} --language PowerShell --version 7.1 --default-packages "{{Az:7.3.2}}"', checks=[ + self.check('name', '{rt}'), + self.check('language', 'PowerShell'), + self.check('version', '7.1'), + self.check('defaultPackages.az', '7.3.2'), + ]) + self.cmd('automation runtime-environment list -g {rg} --automation-account-name {account}', checks=[ + self.check('[-1].name', '{rt}') + ]) + self.cmd('automation runtime-environment show -g {rg} --automation-account-name {account} --name {rt}', checks=[ + self.check('name', '{rt}'), + ]) + self.cmd('automation runtime-environment update -g {rg} --automation-account-name {account} --name {rt} --default-packages "{{Az:8.0.0}}"', checks=[ + self.check('name', '{rt}'), + self.check('defaultPackages.az', '8.0.0'), + ]) + + self.cmd('automation runtime-environment package create -g {rg} --automation-account-name {account} --runtime-environment-name {rt} --name {rt_package} --uri {rt_package_uri} --content-version 1.0.0.0', checks=[ + self.check('name', '{rt_package}'), + self.check('provisioningState', 'Creating'), + ]) + self.cmd('automation runtime-environment package list -g {rg} --automation-account-name {account} --runtime-environment-name {rt}', checks=[ + self.check('length(@)', 1) + ]) + self.cmd('automation runtime-environment package show -g {rg} --automation-account-name {account} --runtime-environment-name {rt} --name {rt_package}', checks=[ + self.check('name', '{rt_package}') + ]) + self.cmd('automation runtime-environment package update -g {rg} --automation-account-name {account} --runtime-environment-name {rt} --name {rt_package} --uri {rt_package_uri2} --content-version 1.0.0.0', checks=[ + self.check('name', '{rt_package}'), + self.check('provisioningState', 'Creating'), + ]) + self.cmd('automation runtime-environment package delete -g {rg} --automation-account-name {account} --runtime-environment-name {rt} --name {rt_package} -y') + self.cmd('automation runtime-environment delete -g {rg} --automation-account-name {account} --name {rt} -y') + + @ResourceGroupPreparer(name_prefix='cli_test_automation_source_control_', location='westus2') + @AllowLargeResponse() + def test_automation_source_control(self, resource_group): + self.kwargs.update({ + 'sub': self.get_subscription_id(), + 'account': self.create_random_name('account', 15), + 'patch_body': '{\\"identity\\": {\\"type\\": \\"SystemAssigned\\"}}', + 'sc': self.create_random_name('sourcecontrol', 20), + 'job_id': 'ba7e6fcd-ea81-4adf-9bed-a38557110065', + 'repo': 'https://github.com/ReaNAiveD/SwaggerAndCmdletsTests.git', + 'branch': 'master', + 'folder': '/', + 'source': 'GitHub', + 'gh_token': 'ghp_MOCKED_GITHUB_TOKEN', + 'location': 'westus2', + }) + + account_id = self.cmd('automation account create -n {account} -g {rg}').get_output_in_json()['id'] + self.kwargs['account_id'] = account_id + object_id = self.cmd( + 'az rest -m PATCH ' + '-u https://management.azure.com/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Automation/automationAccounts/{account}?api-version=2020-01-13-preview ' + '--body "{patch_body}"', checks=[ + self.check('identity.type', 'SystemAssigned') + ]).get_output_in_json()['identity']['principalId'] + self.kwargs['object_id'] = object_id + # According to the prerequisites of source control https://learn.microsoft.com/en-us/azure/automation/source-control-integration#prerequisites, + # we need to Assign the user assigned or system-assigned managed identity to the Contributor role in the Automation account. + # self.cmd('role assignment create --assignee {object_id} --scope {account_id} --role Contributor') + self.cmd('automation source-control create -g {rg} --automation-account-name {account} --name {sc} --repo-url {repo} --branch {branch} --source-type {source} --folder-path {folder} --access-token {gh_token} --token-type PersonalAccessToken --publish-runbook false', checks=[ + self.check('name', '{sc}'), + self.check('repoUrl', '{repo}'), + self.check('branch', '{branch}'), + self.check('folderPath', '{folder}'), + self.check('publishRunbook', False), + self.check('sourceType', '{source}'), + ]) + self.cmd('automation source-control list -g {rg} --automation-account-name {account}', checks=[ + self.check('length(@)', 1), + ]) + self.cmd('automation source-control show -g {rg} --automation-account-name {account} --name {sc}', checks=[ + self.check('name', '{sc}'), + self.check('repoUrl', '{repo}'), + ]) + self.cmd('automation source-control update -g {rg} --automation-account-name {account} --name {sc} --access-token {gh_token} --token-type PersonalAccessToken --publish-runbook True', checks=[ + self.check('publishRunbook', True), + ]) + + job = self.cmd('automation source-control sync-job create -g {rg} --automation-account-name {account} --source-control-name {sc} --job-id {job_id} --commit-id ""', checks=[ + self.check('sourceControlSyncJobId', '{job_id}'), + self.check('provisioningState', 'Running'), + self.check('syncType', 'FullSync'), + ]).get_output_in_json() + self.cmd('automation source-control sync-job list -g {rg} --automation-account-name {account} --source-control-name {sc}', checks=[ + self.check('length(@)', 1), + ]) + while job['provisioningState'] == 'Running': + time.sleep(1) + job = self.cmd('automation source-control sync-job show -g {rg} --automation-account-name {account} --source-control-name {sc} --job-id {job_id}', checks=[ + self.check('sourceControlSyncJobId', '{job_id}'), + ]).get_output_in_json() + self.assertEqual('Failed', job['provisioningState']) + streams = self.cmd('automation source-control sync-job stream list -g {rg} --automation-account-name {account} --source-control-name {sc} --sync-job-id {job_id}').get_output_in_json() + self.kwargs['stream_id'] = streams[0]['sourceControlSyncJobStreamId'] + self.cmd('automation source-control sync-job stream show -g {rg} --automation-account-name {account} --source-control-name {sc} --sync-job-id {job_id} --stream-id {stream_id}', checks=[ + self.check('streamType', 'Output'), + self.check('sourceControlSyncJobStreamId', '{stream_id}') + ]) + self.cmd('automation source-control delete -g {rg} --automation-account-name {account} --name {sc} -y') diff --git a/src/automation/setup.py b/src/automation/setup.py index 8d48d5b50b8..267af681257 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.2.2' +VERSION = '1.0.0b1' try: from azext_automation.manual.version import VERSION except ImportError: